gpt4 book ai didi

c++ - 十进制转二进制C++

转载 作者:行者123 更新时间:2023-11-30 02:44:35 25 4
gpt4 key购买 nike

此程序适用于 3 位整数。但是当输入一个 4 位整数时它会给出错误的答案。

convertToBinary(123); // returns 1111011 (correct) 
convertToBinary(2345); // returns 1313853193 (incorrect)

这是将十进制转换为二进制的函数:

int convertToBinary(int x){
int remainder;
int i=1;
int total=0;

while(x!=0){
remainder = x%2;
x /= 2;
total += remainder*i;
i *= 10;
}
return total;
}

最佳答案

这是因为你遇到了溢出:234510 是 1001001010012,这超出了你设置的 32 位 int 的限制用于存储总数

您可以通过将 unsigned long long 用于您的 total 来稍微改善范围,但是一些更大的数字仍然会触发溢出错误。更好的方法是使用 std::string 作为转换结果。

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

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