将整型数字以二进制形式打印出来
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; }
+++