A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

屏幕上输入一个数,实现使用其低四位翻转,即0变1,1变0,并输出得到的结果。

  1. #include <stdio.h>

  2. void changeDi4Wei(int num ){
  3.     //  利用sizeof计算出int类型的字节数
  4.     int len=sizeof (int)*8;

  5.     int temp,i ;
  6.     //  1.定义第一个循环,原样输出二进制中前(len-4)位的二进制0-1数值
  7.     for ( i=0; i<len-4; i++) {
  8.     //  每次都在原数的基础上进行移位运算
  9.         temp = num;
  10.     //  使用按位右移运算从二进制数的最高位开始输出
  11.         temp = temp>>(len-1-i);
  12.     //  得到最后最后一位
  13.         int t=temp&1;
  14.         printf("%d",t );
  15.     //  每四位输出一个空格
  16.         if(i!=0&&(i+1)%4==0)
  17.             printf(" ");
  18.         
  19.     }
  20.     //  定义第二个函数,翻转输出二进制中低4位的二进制0-1数值
  21.     for ( int j=i  ; j<len; j++) {
  22.     //  同第一个循环
  23.         temp=num;
  24.     //  同第一个循环
  25.         temp=temp>>( 31-j);
  26.     //  利用逻辑非,翻转输出后四位二进制数中0-1数值
  27.         int t=!(temp&1);
  28.         
  29.         
  30.         
  31.         printf("%d",t );
  32.     }
  33.     printf("\n");
  34. }
  35. int main(){
  36.     int x;
  37.     printf("请输入一个整数:\n");
  38.     scanf("%d",&x);
  39.     changeDi4Wei(x);
  40.     return 0;
  41. }
复制代码



0 个回复

您需要登录后才可以回帖 登录 | 加入黑马