将十进制数转换为其二进制表示形式的char数组:

时间:2017-07-17 21:15:33

标签: c binary char

  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;
    }
    }
    

1 个答案:

答案 0 :(得分:1)

扫描位数的想法是从输入编号的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'

的语句