zoukankan      html  css  js  c++  java
  • 使用位运算显示二进制数

      最近学习《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('
    ');
    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]='';
    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 }
  • 相关阅读:
    12.18-java复习-UserBean
    12.17-javaweb复习
    12.16-javaweb复习
    Deprecated Gradle features were used in this build, making it incompatible with Gradle 7.0.
    java建议
    个人表现
    今日总结
    今日总结
    今日总结
    今日总结
  • 原文地址:https://www.cnblogs.com/anthozoan77/p/4069963.html
Copyright © 2011-2022 走看看