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

时间:2011-08-07 22:49:20

标签: java unsigned signed bitmask

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

2 个答案:

答案 0 :(得分:5)

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

答案 1 :(得分:1)

你的代码是否有权利?你使用'>>'而不是'>>>'?有你的问题。