c语言 - 将十进制数转换为其二进制表示的字符数组:


  1. 我将如何用 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 = 101010

如果要将结果存储到数组中,请将printf语句替换为类似于以下内容的内容:outputBuffer[y] = '1''0'

相关内容

  • 没有找到相关文章

最新更新