按位运算符 - 精度

时间:2013-01-22 23:01:52

标签: java logic bit-manipulation

我似乎坚持了三个问题:

  1. 为什么代码x & ~077比这行代码x & 0177700更好。 是不是因为精度损失较少?

  2. 为什么这个代码在数字中设置第5位不正确? num = num + 0x20 是因为我们需要使用逻辑或|,而不是+

  3. 为什么此代码x & 0xFF比这行代码(x << 24) >> 24更好? 正确的表达式可能会导致符号扩展,从而更改原始int。我相信我所做的例子是正确的。

1 个答案:

答案 0 :(得分:1)

  

1,为什么这个代码x&amp; ~077比这行代码x&amp;更好0177700.

因为在第二个中你假设x的整数类型的长度

  

2,为什么这个代码在数字中设置第5位不正确? num = num + 0x20是不是因为我们需要使用逻辑或,而不是+?

是的!他们是不同的运营商。