首页 > 解决方案 > 我在 (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;
}

任何帮助将非常感激。

标签: cfunctionbinarydecimal

解决方案


正如所mch评论1001110010111的那样,对于整数来说太大了。您可以尝试将其保存在unsigned long long int变量中,但实际上最好的方法是使用字符数组或字符指针。


推荐阅读