让我说我有这个变量:
unsigned int a = 13428;
它的二进制值是:11010001110100
我想获得前5位(11010001110100)
我试着这样做:
a &= 11111; // because in left is always 0
我做错了什么?如果我在纸上做
11010001110100
&
00000000011111
它应该是00000000010100
11111
只有十一万一千一十一。这是二进制的10101101100111
。
所以在二进制文件中你正在做11010001110100 & 10101101100111
,它是二进制10000001100100
。