如题,我们都知道,C语言中,二进制是无法直接打印出来的,但换个思路,还是可以打印的- //int类型
- void printbinary(int num)
- {
- int length = sizeof(num)*8;
- for(int i = 0;i<length;i++)
- {
- if(i!=0&&i%4==0)
- {
- printf(" ");
- }
- printf("%d",1&(num>>(31-i)));
- }
- printf("\n");
- }
复制代码- //char类型
- void printbinary(char num)
- {
- int length = sizeof(num)*8;
- for(int i = 0;i<length;i++)
- {
- if(i!=0&&i%4==0)
- {
- printf(" ");
- }
- printf("%d",1&(num>>(7-i)));
- }
复制代码 思想是任何数&1,都得到的是这个数的补码的二进制形式的最末一位,循环遍历这个数的每一位,并取得每一位的值,得到的就是这个数的二进制的补码形式
|
|