三分钟了解java位运算

基本左移n位, 即*2的n次方java

基本右移n位, 即/2的n次方code

static void print() {

	int number = 32;

	printBinaryString(number,"原始值");

	printBinaryString(number << 1,">>>左移1位");
	
	printBinaryString(number << 2,">>>左移2位");
			
	printBinaryString(number >> 1,">>>右移1位");
	
	printBinaryString(number >> 2,"右移2位");
	
	printBinaryString(number >> 4,"右移4位");
	
	printBinaryString(number >>> 1,">>>无符号右移1");
	
	printBinaryString(number >>> 2,">>>无符号右移2");
	
	printBinaryString(number >>> 4,">>>无符号右移4");
	
	printBinaryString(number >>> 5,">>>无符号右移5");


}

static void printBinaryString(int num,String operate) {
	System.out.println(Integer.toBinaryString(num)+"="+num +"====>"+operate);
}

 

100000=32====>原始值
1000000=64====>>>>左移1位
10000000=128====>>>>左移2位

100000=32====>原始值
10000=16====>>>>右移1位
1000=8====>右移2位
10=2====>右移4位

100000=32====>原始值
10000=16====>>>>无符号右移1
1000=8====>>>>无符号右移2
10=2====>>>>无符号右移4
1=1====>>>>无符号右移5

 

11111111111111111111111111111111=-1====>原始值
11111111111111111111111111111110=-2====>>>>左移1位
11111111111111111111111111111100=-4====>>>>左移2位
11111111111111111111111111111111=-1====>>>>右移1位
11111111111111111111111111111111=-1====>右移2位
11111111111111111111111111111111=-1====>右移4位
1111111111111111111111111111111=2147483647====>>>>无符号右移1
11111111111111111111111111=67108863====>>>>无符号右移5
1111111111111111111111111111111=2147483647====>int 最大值(Integer.MAX_VALUE)
相关文章
相关标签/搜索