java中>>与>>>的区别

Java运算符的优先级:

java中>>与>>>的区别_第1张图片

所以,这里我们先关注一下位移运算(左移<<、右移>>、无符号右移>>)的优先级,它们的优先级甚至低于加和减,但高于位运算。

有符号右移运算符>>

用来将一个数的各二进制位全部右移若干位。例如:a = a>>2,使a的各二进制位右移两位,移到右端的低位被舍弃,最高位则移入原来高位的值。如:
a = 00110111,则a>>2=00001101
b=11010011,则b>>2 = 11110100
右移一位相当于除2 取商,而且用右移实现除法比除法运算速度要快

无符号右移运算符>>>

用来将一个数的各二进制位无符号右移若干位,与运算符>>相同,移出的低位被舍弃,但不同的是最高位补0,如:
a = 00110111,则a>>>2 = 00001101
b=11010011,则 b>>>2 = 00110100

你可能感兴趣的:(java中>>与>>>的区别)