我看不出爲什麼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