1.先使a右移4位。
2.设置一个低4位全为1,其余全为0的数。可用(0<<4)
3.将上面二者进行&运算。
#include <stdio.h>
int main(){
unsigned a,b,c,d;
printf("请输入整数:\n");
scanf("%o",&a);
b=a>>4;
/*~按位取反,
<<左移运算
比如0的二进制为00……0000000
那么~0就为11……1111111
而~0<<4就是将~0的二进制码向左移动4位,右边补0,
即得11……1110000
~(~0<<4)就是将上一步得到的二进制码(11……1110000)取反,
得00……0001111*/
c=~(~0<<4); d=b&c; printf("%o\n%o\n",a,d); return 0;
}