我需要转换一个字节在Java诠释,但我不想符号扩展,所以我也为什么位或操作会导致符号扩展,但有点不会?
byte b = -1
(int) (b & 0xF) // this returns 15, which is what I want
(int) (b | 0) // this returns -1, which is essentially 0xFFFF, sign extension happens, not what I want
我认为上述两个应该给予同样的结果,但事实证明并非如此。 我必须错过点位操作。
做一个或用'0'给对方号码:您可以通过它自动装箱到
Object
,然后检查对象的类型进行测试。你在问什么? –不,我的意思是我认为0 | ((字节)-1)应该是15,但实际上它是-1。 – NSF
将零与一个值进行或运算返回值不变。 –