如何在Java中避免使用符号扩展位掩码?

Dud*_*awg 2 java unsigned signed bitmask

我的位掩码是字节,我想保持它们的原样,但我认为它们是符号扩展的.我不在乎字节被认为是正数还是负数,只要它具有相同的位设置即可.我只花了几个小时调试我的代码,然后我发现我的字节位掩码只是在它们碰巧是负面的时候有问题,需要一段时间才能找到答案.我不可能是唯一一个遇到此问题的人.有没有办法让字节表现得好像是无符号的?

Hen*_*olm 5

如果在算术(或按位)运算符中使用它时不希望字节符号扩展,则需要显式按位 - 并使用0xFF.它看起来有点丑陋但是如果你拥有的是一个不可避免的byte(并且希望一个体面的JIT能够识别成语并且无论如何都能从中获得有效的代码).