java_位操作符的运算

public class BitOperation
{
	public static void main(String args[])
	{
		/**
		*左移操作:5<<2;
		*先将左操作数5转换为二进制,0101,再向左移动右操作数2位,添零不足空位。为010100,转换为十进制数是20。
		*左移操作相当于乘法,每向左移动一位相当于将左操作数5乘以2。
		*右移操作:5>>2;
		*同上,即除以2。
		*/
		int i = 5;
		System.out.println("5<<2 = " + (i<<2));
		System.out.println("5>>2 = " + (i>>2));
		System.out.println("5>>33 = " + (i>>33));//因为i是int类型,所能表示的最大位数是32,
																						 //所以此语句相当于将变量5右移(33%32)(右操作数对左操作数的类型长度取余)位,即5>>1 = 2。
	}
}

你可能感兴趣的:(java_位操作符的运算)