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

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:\t", 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, "\n");
}

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


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

    return 0;
}

 


 

posted @ 2019-05-28 17:32  大窟窿  阅读(716)  评论(0编辑  收藏  举报