【程序54】
题目:取一个整数a从右端开始的4~7位。
程序分析:可以这样考虑:
(1)先使a右移4位。
(2)设置一个低4位全为1,其余全为0的数。可用~(~0<<4)
(3)将上面二者进行&运算。
2.程序源代码:
main()
{
unsigned a,b,c,d;
scanf("%o",&a);
b=a>>4; //不懂
c=~(~0<<4); //不懂
d=b&c;
printf("%o\n%o\n",a,d);
}
这一题很多看不懂 b=a>>4;??什么意思?c=~(~0<<4);??什么意思?
希望可以详细的讲一下这道题谢谢了!
参考资料:C程序设计(第三版)