将整型数字以二进制形式打印出来

2019-05-28

关键字:整型转二进制


分享一个 C 语言实现的将整型数字转换成二进制形式打印出来的代码。

这里贴两种打印形式,第一种形式是打印 2 个字节长度的数字,且每 4 位就会空一个格出来以增加阅读性。而第二种形式的则是只打印 1 个字节。

其实这两个函数都是笔者在工作中写的,各自的适用场景不同而已。

下面先贴出这两个函数各自的执行结果,即转换结果。

笔者不喜欢啰嗦,上面的结果的源代码如下,整个代码逻辑极其简单,就不解释了。有需要的同学直接拷贝走人就好。 

#include <stdio.h>


void pbin1(int i)
{
    int j;
    int mask = 32768;// 1000 0000 0000 0000
    fprintf(stdout, "%d:	", i);
    for(j = 0; j < 16; j++)
    {
        fprintf(stdout, "%c", ((i & (mask >> j)) >> (15 - j)) + '0');
        switch(j){
            case 3:
            case 7:
            case 11:
                fprintf(stdout, " ");
            break;
        }
    }
    fprintf(stdout, "
");
}

void pbin2(unsigned char dat)
{
    char index;
    printf("%d:	", dat);
    for(index = 7; index >= 0; index--)
    {
        printf("%d", (dat >> index) & 1);
    }
    printf("
");
}


int main()
{
    
    pbin1(1);
    pbin1(-1);
    pbin1(-128);
    pbin1(127);
    pbin1(256);
    pbin1(17173);
    pbin1(65535);
    
    printf("------------------------------------------
");
    
    pbin2(1);
    pbin2(127);
    pbin2(255);
    pbin2(256);
    pbin2(-2);

    return 0;
}

原文地址:https://www.cnblogs.com/chorm590/p/10916263.html