gpt4 book ai didi

c++ - 从十进制变为二进制

转载 作者:行者123 更新时间:2023-11-27 23:19:25 25 4
gpt4 key购买 nike

我正在使用此示例代码来帮助我完成十进制到二进制数的转换:http://www.planet-source-code.com/vb/scripts/ShowCode.asp?txtCodeId=13734&lngWId=3 从十进制转换为二进制。

我对较小的数字进行了成功的尝试。但是当我添加一个数字时:2159492075 或 2159492195。程序只输出 0。我还尝试了一个同样大小的数字,例如 1234567899 或 2134567899,我得到了数字的正确二进制表示。我想知道这是为什么?

最初我认为这可能是因为将变量定义为 long int:

long int dec,k=0,i=0,j=0,n,remainder,result[100];

但在进一步挖掘时,我认为这不是问题。有人可以建议我可能做错了什么吗?

最佳答案

尝试使用 long long 类型。您的问题可能不仅仅是溢出。

void convert(long long n, int arr[100], int & i)
{
i = 0;
do
{
arr[i++] = n % 2;
n /= 2;
} while (n);
for (int j = 0; j <= i / 2; ++j) swap(arr[j], arr[i - j - 1]);
}

用法:

int sz, my_arr[100];
convert(2013, my_arr, sz);
for (int i = 0; i < sz; ++i) cout << my_arr[i];
cout << endl;

关于c++ - 从十进制变为二进制,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14368023/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com