黑马程序员技术交流社区
标题:
对一条关于位运算 的代码的理解
[打印本页]
作者:
yanggangcl
时间:
2015-10-29 11:52
标题:
对一条关于位运算 的代码的理解
//题目:取一个整数a从右端开始的4~7位。
#include <stdio.h>
int main(int argc, const char * argv[]) {
unsigned a,b,c,d;
scanf("%o",&a); //输入八进制,如o111,则a = 73
b=a>>4; //右移4为,73为 0b1001001,右移后为 0b00..00100
c=~(~0<<4); //~0为 0b11...1111 ,左移4位为 0b11..1110000 ,再取反得 0b00..001111
d=b&c; //0b00..00100 & 0b00..001111 = 0b00..000100
printf("%o\n%o\n",a,d);
return 0;
}
复制代码
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2