黑马程序员技术交流社区
标题:
屏幕上输入一个数,实现使用其低四位翻转
[打印本页]
作者:
jiangenhao
时间:
2014-4-18 23:50
标题:
屏幕上输入一个数,实现使用其低四位翻转
/*
屏幕上输入一个数,实现使用其低四位翻转,即0变1,1变0,并输出得到的结果。
*/
帮我看下 我的代码及思路 哪不对 我是小白 问题比较低级,希望得到指导 谢谢
#include<stdio.h>
int main()
{
int n;
printf("请输入一个数\n");
scanf("%d",&n);
int m = n;
scanf("%d",&n);
n << 28; //左移28位;
~n ; //对n取反;
n >> 28; //右移28位
m >> 4; //左移4位
m << 4; //右移4位
int b = m | n; //按位或,得出结果。
ptintf("%d\n",b);
return 0;
}
复制代码
作者:
董月峰
时间:
2014-4-19 07:59
本帖最后由 董月峰 于 2014-4-19 08:11 编辑
#include<stdio.h>
int main()
{
int n;
printf("请输入一个数\n");
scanf("%d",&n);
int b = n ^ 15;
ptintf("%d\n",b);
return 0;
}
复制代码
^ 按位异或
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
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2