我一直在研究将十进制数转换为二进制数的方法。但是在示例中,我发现要转换的十进制数不在数组内。例如:
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 *中(随机生成),如何将其传递给保存在数组中的二进制数?然后,如何将其传递回保存在数组中的十进制数字?
您正在用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++;
}
}