我看不出为什么3 & 0x1111 = 1?看来:为什么(3&0x1111)= 1?
对于任何无符号的32位整数我,我& 0x1111应该是我,对吗?
但是,当我在ubuntu 14.04上试过这个,我得到了3 & 0x1111=1
。为什么?
int main() {
unsigned int a =3;
printf("size of a= %lu\n",sizeof(a));
printf("value of 3 & 0x1111= %d\n",a & 0x1111);
return 0;
}
对于任何无符号32位整数i,我&0xffffffff应该是我 – cerkiewny
你只掩饰了第一位,所以它正常变为1 – Nasr
@cerkiewny:对于任何'uint16_t',但对于32位类型。 “0xFFFF”只有16个“1”位。 – Olaf