Java运算符与控制语句详解
1. 位运算符
1.1 左移运算符(<<)
左移运算符将一个值的所有位向左移动指定的次数。每次左移相当于将原数值乘以2。例如:
int a = 64;
int i = a << 2;
byte b = (byte) (a << 2);
System.out.println("Original value of a: " + a);
System.out.println("i and b: " + i + " " + b);
输出结果为:
Original value of a: 64
i and b: 256 0
这里, a
被提升为 int
类型进行计算,将64(二进制 0100 0000
)左移两次后, i
的值为256(二进制 1 0000 0000
)。而 b
的值为0,因为左移后低字节变为0,唯一的1位被移出了。
不过,需要注意的是,如果将1位移入高位(第31位或第63位),数值将变为负数。以下程序演示了这一点:
class MultByTwo {
public static void main(String args[]) {
int i