将数组中保存的十进制数转换为数组中保存的二进制数,反之亦然

问题描述 投票:0回答:1

我一直在研究将十进制数转换为二进制数的方法。但是在示例中,我发现要转换的十进制数不在数组内。例如:

void decToBinary(int n) 
{ 
    // array to store binary number 
    int binaryNum[32]; 

    // counter for binary array 
    int i = 0; 
    while (n > 0) { 

        // storing remainder in binary array 
        binaryNum[i] = n % 2; 
        n = n / 2; 
        i++; 
    } 
}

但是,对于我来说,我有一个十进制数保存在数组uint8_t *中(随机生成),如何将其传递给保存在数组中的二进制数?然后,如何将其传递回保存在数组中的十进制数字?

c arrays binary decimal
1个回答
0
投票

您正在用while循环中的剩余数替换存储在数组中的整数。相反,您必须将n%2设置为binaryNum[i]],然后将其添加到binaryNum[i] << 1

更正后的代码应为:

void decToBinary(int n) 
{ 
    // array to store binary number 
    int binaryNum[32]; 

    // counter for binary array 
    int i = 0; 
    while (n > 0) { 

        // storing remainder in binary array 
        binaryNum[i] = binaryNum[i]<<1 + (n % 2); 
        n = n / 2; 
        i++; 
    } 
}
© www.soinside.com 2019 - 2024. All rights reserved.