#include<stdio.h>void main(){ unsigned x=23; int p=2,n=2; printf("%u\n",(x>>(p+1-n)&(0<<n));}
为什么结果等于3 实在是看不懂 求解答一下
收起
x>>(p+1-n)&(0<<n) 这是位运算x>>(p+1-n): x右移1位,00010111变成00001011(0<<n) n是有符号数,需要补1,变成0011二者与一下 变成 0011 ,也就是3
报告相同问题?