千万要牢记: 左边是被操作数,右边是移动位数(这对左移符和右移符来说都是一样的)
public class Test {
// 从极限出发,傻瓜式测试
public static void main(String[] args) {
/*** 左移测试 ***/
// 被操作数 左移箭头 左移位数 二进制 十进制
System.out.println(1 << 0); // 1 向左移0位, 1 = 1
System.out.println(1 << 1); // 1 向左移1位, 10 = 2
System.out.println(1 << 2); // 1 向左移2位, 100 = 4
System.out.println(1 << 3); // 1 向左移3位, 1000 = 8
System.out.println(1 << 4); // 1 向左移4位,10000 = 16
System.out.println(2 << 1); // 2 向左移1位,10 变 100 即 4
System.out.println(2 << 2); // 2 向左移2位,10 变 1000 即 8
System.out.println(2 << 3); // 2 向左移3位,10 变 10000 即 16
System.out.println(2 << 4); // 2 向左移4位,10 变 100000 即 32
System.out.println(3 << 1); // 3 向左移1位,11 变 110 即 6
System.out.println(3 << 2); // 3 向左移2位,11 变 1100 即 12
System.out.println(3 << 3); // 3 向左移3位,11 变 11000 即 24
System.out.println(3 << 4); // 3 向左移4位,11 变 110000 即 48
/*** 右移测试 ***/
// 被操作数 右移箭头 右移位数 二进制 十进制
System.out.println(1 >> 0); // 1 向右移0位, 1 = 1
System.out.println(1 >> 1); // 1 向右移1位, 0 = 0
System.out.println(1 >> 2); // 1 向右移2位, 0 = 0
System.out.println(1 >> 3); // 1 向右移3位, 0 = 0
System.out.println(1 >> 4); // 1 向右移4位, 0 = 0
System.out.println(2 >> 0); // 2 向右移1位,10 变 10 即 2
System.out.println(2 >> 1); // 2 向右移1位,10 变 01 即 1
System.out.println(2 >> 2); // 2 向右移2位,10 变 00 即 0
System.out.println(2 >> 3); // 2 向右移3位,10 变 00 即 0
System.out.println(2 >> 4); // 2 向右移4位,10 变 00 即 0
System.out.println(3 >> 1); // 3 向右移1位,11 变 01 即 1
System.out.println(3 >> 2); // 3 向右移2位,11 变 00 即 0
System.out.println(3 >> 3); // 3 向右移3位,11 变 00 即 0
System.out.println(3 >> 4); // 3 向右移4位,11 变 00 即 0
}
}