c - 我在 (C) 中将十进制数转换为二进制的函数为(某些数字)产生了错误的输出![没有数组]
问题描述
我有一个应该将十进制数转换为二进制数的函数。问题是对于某些数字,它的作用类似于以下输出:
27 = 00011011
但对于 5015 它将其转换为 82630143 而不是 1001110010111
这是我的功能:
int dec(int num) {
long bNum = 0;
int remNum, i = 1, highNum = 32768;
while (num != 0) {
remNum = num / highNum;
remNum = num % 2;
num /= 2;
bNum = bNum + remNum * i;
i = i * 10;
}
return bNum;
}
任何帮助将非常感激。
解决方案
正如所mch
评论1001110010111
的那样,对于整数来说太大了。您可以尝试将其保存在unsigned long long int
变量中,但实际上最好的方法是使用字符数组或字符指针。
推荐阅读
- r - 如何从数据帧创建频率矩阵
- java - 我怎样才能正确地从表单中获取数据
- sorting - 关于在单个代码中对字典进行排序,就像我想要在单个字典中同时按键和值排序的字典
- react-native - 将异步存储与 React Navigation 结合使用(React Native)
- php - 我正在寻找 php-info 文件的替代品,因为我所在的服务器不允许它运行,我可以使用任何替代代码吗?
- for-loop - 如何减少每个像素的迭代?
- javascript - “for await of”的控制流程是什么?
- java - java中不受信任的清单条目异常
- outlook-redemption - 保存不总是执行的 RDOMailItem
- replace - 在雪花中用反斜杠替换函数