gpt4 book ai didi

c - C中的十进制转二进制算法

转载 作者:太空狗 更新时间:2023-10-29 17:09:30 25 4
gpt4 key购买 nike

我正在尝试使用以下算法将十进制数转换为 C 中的二进制数。我不明白为什么它对某些输入不能正常工作(例如,对于 1993,我得到 1420076519)。

int aux=x;
long bin=0;
while (aux>0)
{
bin=bin*10+aux%2;
aux=aux/2;
}
printf("%d in decimal is %ld in binary.", x, bin);

最佳答案

当你打印 long 时,你不会打印二进制文件。转换为二进制或显示十进制数的二进制表示的最佳方法是将其存储在字符串中。 Bellow 是另一个 SO answer 中提供的解决方案

void getBin(int num, char *str)
{
*(str+5) = '\0';
int mask = 0x10 << 1;
while(mask >>= 1)
*str++ = !!(mask & num) + '0';
}

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

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