三分鐘瞭解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)
相關文章
相關標籤/搜索