黑马程序员技术交流社区

标题: 关于神奇的二进制打印方法 [打印本页]

作者: wc88212    时间: 2016-7-23 20:42
标题: 关于神奇的二进制打印方法
如题,我们都知道,C语言中,二进制是无法直接打印出来的,但换个思路,还是可以打印的
  1. //int类型
  2. void printbinary(int num)
  3. {
  4.     int length = sizeof(num)*8;
  5.     for(int i = 0;i<length;i++)
  6.     {
  7.         if(i!=0&&i%4==0)
  8.         {
  9.             printf(" ");
  10.         }
  11.         printf("%d",1&(num>>(31-i)));
  12.     }
  13.     printf("\n");
  14. }
复制代码
  1. //char类型
  2. void printbinary(char num)
  3. {
  4.     int length = sizeof(num)*8;
  5.     for(int i = 0;i<length;i++)
  6.     {
  7.         if(i!=0&&i%4==0)
  8.         {
  9.             printf(" ");
  10.         }
  11.         printf("%d",1&(num>>(7-i)));
  12.     }
复制代码
思想是任何数&1,都得到的是这个数的补码的二进制形式的最末一位,循环遍历这个数的每一位,并取得每一位的值,得到的就是这个数的二进制的补码形式





欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2