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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

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

  4. 帮我看下 我的代码及思路 哪不对 我是小白 问题比较低级,希望得到指导 谢谢
  5. #include<stdio.h>
  6. int main()
  7. {
  8.     int n;
  9.     printf("请输入一个数\n");
  10.     scanf("%d",&n);
  11.    
  12.     int m = n;
  13.     scanf("%d",&n);
  14.     n << 28; //左移28位;
  15.         ~n ; //对n取反;
  16.     n >> 28; //右移28位
  17.     m >> 4; //左移4位
  18.     m << 4; //右移4位
  19.     int b = m | n; //按位或,得出结果。
  20.    
  21.    
  22.     ptintf("%d\n",b);
  23.     return 0;
  24. }
复制代码

评分

参与人数 1技术分 +1 收起 理由
jing迪 + 1

查看全部评分

1 个回复

倒序浏览
本帖最后由 董月峰 于 2014-4-19 08:11 编辑
  1. #include<stdio.h>
  2. int main()
  3. {
  4.     int n;
  5.     printf("请输入一个数\n");
  6.     scanf("%d",&n);
  7.     int b = n ^ 15;
  8.     ptintf("%d\n",b);
  9.     return 0;
  10. }
复制代码
^ 按位异或
1> 使用形式:整数a ^ 整数b

2> 功能:整数a和b各对应的二进位相异或。当对应的二进位相异(不相同)时,结果为1,否则为0。参与运算的数以补码方式出现。

3> 举例:比如9^5,其实就是1001^0101=1100,因此9^5=12

4> 规律:

二进制中,与1相^就会取反,与0相^保持原位
相同整数相^的结果是0。比如5^5=0
多个整数相^的结果跟顺序无关。比如5^6^7=5^7^6
因此得出结论:a^b^a = b

评分

参与人数 1技术分 +1 收起 理由
jing迪 + 1

查看全部评分

回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马