C++ の正の整数 (0 ~ 2,147,483,647) を 32 ビット バイナリに変換して表示します。
私は伝統的な「数学的」方法でそれを行いたいです(ビットセットを使用したり、ベクトル* .pushback *または再帰関数を使用したり、C ++で特別なものを使用したりするのではなく...)、(1つの理由は、異なる言語で実装できるようにするためです。まあ多分)
そこで、次のような単純なプログラムを実装します。
#include <iostream>
using namespace std;
int main()
{
int dec,rem,i=1,sum=0;
cout << "Enter the decimal to be converted: ";
cin>>dec;
do
{
rem=dec%2;
sum=sum + (i*rem);
dec=dec/2;
i=i*10;
} while(dec>0);
cout <<"The binary of the given number is: " << sum << endl;
system("pause");
return 0;
}
問題は、9999 などの大きな数値を入力すると、合計が整数であり、最大範囲を超えて処理できないため、結果が負または奇妙な数値になることです。 C ++の数値型には大きすぎますか?. ここで、質問が必要な場合の 32 ビット番号の表示に関する提案はありますか?