取一个整数a从右端开始的4-7位,程序如下:
main()
{unsigned a,b,c,d;
scanf("%o",&a);
b=a>>4;
c=~(~0<<4);(这条语句怎么理解)
d=b&c;
printf("%o,%o\n",a,d);
}
第1个回答 2012-04-05
取c为1111 然后和b去and 的4~7 (不过你确定程序中的4不是3?)追问
(~0<<4);这个值是多少
追答10000 (我是问b=a>>3? 还是说整数是从第0位开始的?)
追问b=a>>4;