黑马程序员技术交流社区

标题: 对一条关于位运算 的代码的理解 [打印本页]

作者: yanggangcl    时间: 2015-10-29 11:52
标题: 对一条关于位运算 的代码的理解
  1. //题目:取一个整数a从右端开始的4~7位。
  2. #include <stdio.h>
  3. int main(int argc, const char * argv[]) {
  4.    
  5.     unsigned a,b,c,d;
  6.     scanf("%o",&a);         //输入八进制,如o111,则a = 73
  7.     b=a>>4;                 //右移4为,73为 0b1001001,右移后为 0b00..00100
  8.     c=~(~0<<4);             //~0为 0b11...1111 ,左移4位为 0b11..1110000 ,再取反得 0b00..001111
  9.     d=b&c;                  //0b00..00100 & 0b00..001111 = 0b00..000100
  10.     printf("%o\n%o\n",a,d);
  11.    
  12.     return 0;
  13. }
复制代码





欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2