0xf为什么是1
0xf为什么是1
0xf为什么是1
2018-04-07
0xff是指16进制的255 即二进制中的 1111 1111,而不是1。
课程里说的>>>(>>>是无符号右移,左边全部补0)和& 0xff(& 是 按位与操作,如101&001 = 001)的操作是为了取int值的各个部分的8位。
实际上只需要>>>即可,而& 一个0xff实际上得到当前最后的八位的原值(因为与了一个全是1的),同时消除了前面多余的位数。
例如:
0000,0000,0000,0011想要取高八位即(0000,0000),先进行一次>>>8(右移8位,补0)得到
0000,0000,0000,0000(斜的0是新补上去的),然后再用他和0xff,即
1111,1111进行 与 运算,那么就能得到
0000,0000(把斜的0全部去掉了)
举报