-
我将如何用 C 编写代码以将十进制数的二进制表示形式分配给 char 变量?
\ x is the value of the decimal integer \ y is length of the binary representation { binary[33] = {0}; while(x!=0){ binary[y] = (x%2)+'0'; y--; x/=2; } }
扫描数字位的想法是从输入编号的MSB位开始,然后继续到LSB位。当检测到第一个1
时,即使稍后检测到0
,也可以开始打印/保存/任何操作。
这是现在的示例,它将打印您的数字位,当它到达第一个1
时开始打印。
#include <stdio.h>
#include "limits.h"
int main() {
unsigned int num = 10;
int y = 0, i;
for (i = sizeof(num) * CHAR_BIT - 1; i >= 0; i--) {
if (num & (1U << i)) {
printf("1");
y++;
} else if (y) {
printf("0");
y++;
}
}
printf("n");
return 0;
}
输出num = 10
:1010
如果要将结果存储到数组中,请将printf
语句替换为类似于以下内容的内容:outputBuffer[y] = '1'
或'0'