将 C++ 中的正整数(0 到 2,147,483,647)转换为 32 位二进制并显示。
我想以传统的“数学”方式(而不是使用bitset或使用向量* .pushback * 或递归函数或 C++ 中的一些特殊东西......),(一个原因是你可以用不同的语言实现它,也许)
所以我继续实现一个像这样的简单程序:
#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)时,结果将是一个负数或一些奇怪的数字,因为 sum 是整数并且它不能处理超过它的最大范围,所以您知道 32 位二进制将有 32 位所以对于 C++ 中的任何数字类型来说它都太大了吗?这里有什么建议以及关于显示 32 位数字的问题吗?