按键盘上方向键 ← 或 → 可快速上下翻页,按键盘上的 Enter 键可回到本书目录页,按键盘上方向键 ↑ 可回到本页顶部!
————未阅读完?加入书签已便下次继续阅读!
i = 85
j = 4
i 》 j is true
i 《 j is false
i 》= j is true
i 》》),它使用了“零扩展”:无论正负,都在高位插入0。这一运算符是C 或C++没有的。
若对 char,byte 或者 short 进行移位处理,那么在移位进行之前,它们会自动转换成一个 int。只有右侧的
5 个低位才会用到。这样可防止我们在一个 int数里移动不切实际的位数。若对一个 long 值进行处理,最后
得到的结果也是 long。此时只会用到右侧的 6 个低位,防止移动超过 long 值里现成的位数。但在进行“无
符号”右移位时,也可能遇到一个问题。若对 byte 或 short 值进行右移位运算,得到的可能不是正确的结果
(Java 1。0 和Java 1。1 特别突出)。它们会自动转换成 int 类型,并进行右移位。但“零扩展”不会发
生,所以在那些情况下会得到…1 的结果。可用下面这个例子检测自己的实现方案:
//: URShift。java
// Test of unsigned right shift
public class URShift {
68
…………………………………………………………Page 70……………………………………………………………
public static void main(String'' args) {
int i = …1;
i 》》》= 10;
System。out。println(i);
long l = …1;
l 》》》= 10;
System。out。println(l);
short s = …1;
s 》》》= 10;
System。out。println(s);
byte b = …1;
b 》》》= 10;
System。out。println(b);
}
} ///:~
移位可与等号(=或》》》=)组合使用。此时,运算符左边的值会移动由右边的值指定的位数,再将得
到的结果赋回左边的值。
下面这个例子向大家阐示了如何应用涉及“按位”操作的所有运算符,以及它们的效果:
//: BitManipulation。java
// Using the bitwise operators
import java。util。*;
public class BitManipulation {
public stat