首页 > 代码库 > 使用位运算显示二进制数

使用位运算显示二进制数

  最近学习《C Primer Plus》位操作部分,结合书上的编程实例来巩固这部分知识点。  

 1 //使用位运算显示二进制数 2 #include<stdio.h> 3 char *itobs( int, char*);                //integer to binary string 4 void show_bstr( const char*); 5 main() 6 { 7     char bin_str[8 * sizeof(int) +1]; 8     int number; 9     while(scanf("%d", &number)==1)10     {11         itobs( number, bin_str);12         printf("%d is ", number);13         show_bstr( bin_str);14         putchar(\n);15     }16 }17 char *itobs( int n, char *ps)18 {19     int i;20     static int size = 8 * sizeof(int);21     for( i=size-1; i>=0; i--, n>>=1)22         ps[i]=(1&n)+0;                    //01&n就是n的最后一位的值(1&n也行),该值为0或1。字符数组需要字符‘0‘或‘1‘,加上‘0‘的ASCII编码可以完成转换23     ps[size]=\0;24     return ps;25 }26 //四位一组显示二进制字符串27 void show_bstr(const char *str)28 {29     int i=0;30     while(str[i])31     {32         putchar(str[i]);33         if(++i%4==0  &&  str[i])34             putchar(  );35     }36 }

 

使用位运算显示二进制数