很简单的C语言写的,不多解释,看代码就懂 #include<stdio.h> void main() { unsigned int x; int p=4; int n=3; int z; //z=(x >> (p+1-n)) & ~(~0 << n);//z=3 //>> <<左右移动操作符 只能转换为二进制后在移。 //>>>右移,无符号的unsigned的右移 //~(~0<<n)=7 //~0<<n= -8 //逻辑运算符 // ~ 0 = -1;~ -1=0;~5=-6;~-5=4; // z=13|10;//按为或,表示只要有一个运算对象为1,结果就是1 // z=13^10;//按位异或,表示只有对象不同的时候才为1.否则为0 // z=13&10;//按位与,表示只有运算对象相同的时候才为1,否则为0 z=(p>n)?1:0; printf("%d/n",z); }