(Integer.MAX_VALUE)
因此要判断两个Integer类型的数符号是否相同,可以这样判断:
return ((a >> 31) ^ (b >> 31)) == 0;
移位运算结果
在不大于自身数值类型最大位数的移位时...,一个数左移n位,就是将这个数乘以2的n次幂
一个数右移n位,就是将这个数除以2的n次幂,然后取整
如果移动位数超出自身数值类型的最大位数, 只要将移位数和自身数值类型的最大位数取余得到的数字套用方法即可...注意
三种移位运算作用的左操作数有五种:
long
int
short
byte
char
在作用不同的操作数类型时的具体操作过程不同,遵循以下原则:
int移位时, 左操作数是32位,此时移位符号作用在...11111111这32位向右移动7位,得到的结果是00000001 11111111 11111111 11111111
由上可知:
当左操作数为long时,移位之后得到的类型是long
当左操作数是其它四种类型时...,移位之后得到的类型时int
所以当左操作数是short,byte,char时,使用 >>=, >>>=, <<= .