java中的左移和右移 JAVA表达式a >>> 2什么意思?
JAVA表达式a >>> 2什么意思?&在Java语言中,>>;GT2表示整数a向右移动2位,不带符号,高位用0填充。让我给你一个Java语言的例子。看看公共类a{publicstaticvo
JAVA表达式a >>> 2什么意思?
&在Java语言中,>>;GT2表示整数a向右移动2位,不带符号,高位用0填充。让我给你一个Java语言的例子。看看公共类a{publicstaticvoidmain(string[]args){inta=-20系统输出打印( 整数.toBinaryString(a) )//>>>不带符号右移,忽略符号位,用0 int结果填充高位=a>>> 2系统输出打印( 整数.toBinaryString(result))}运行结果11101011111010显示-20的二进制是11101011,它被右移2位。此时,高位用0填充,即0011 1010,结果是result=58
原文是:对于无符号数据,另一方面,右移必须是另一方面,无符号数的右移操作必须是逻辑的。有符号数需要考虑正数和负数的情况,其算术右移需要在左端对原始符号位(最高位)进行补充;无符号数没有符号位,其右移运算总是在左端对零进行补充。因此,对于无符号数不存在所谓的“算术右移运算”,必须使用左端为零的“逻辑右移运算”。