关于按位与的问题 求大侠指点
/*取一个整数a从右端开始的4~7位*/main()
{
unsigned a,b,c,d;
scanf("%o",&a);
b=a>>4; //1
c=~(~0<<4);//2
d=b&c;
printf("%o\n%o\n",a,d);
}
首先,我觉得标记1处是不是应该是b>>3呢?从右端开始4~7位那应该是右移3位才对?
还有就是标记2是个什么意思?
我直接写c=15不行吗? (十进制)15= (二进制)1111,不就可以按位与保持4~7位不变?
最后一个问题,这儿%o和%d有什么不同?
问题比较多,请不要见怪。谢谢了。