基本左移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)