Java 中算术右移和逻辑右移的区别是:1、运算方式不同;2、结果不同;3、用途不同;4、运算符不同。算术右移保留符号位,并将其他位向右移动;逻辑右移则不保留符号位,并将其他位向右移动,左边补0。
一、Java 中算术右移和逻辑右移的区别
1、运算方式不同
算术右移保留符号位,并将其他位向右移动;逻辑右移则不保留符号位,并将其他位向右移动,左边补0。
2、结果不同
算术右移的结果可能是负数,逻辑右移的结果始终是正数。
3、用途不同
算术右移通常用于除以2的幂的整数运算,逻辑右移通常用于位运算。
4、运算符不同
算术右移使用>>运算符,逻辑右移使用>>>运算符。
延伸阅读:
二、什么是算术右移
算术右移是指将位向右移动指定位数,然后在左边填充0。SAR (arithtical right shift)是将位向右移动指定的位数,然后在左边填充原始的符号位。
例如,在汇编语言中,对于算术右移,如果较高位为1,则填写1;否则,填写0。例如,如果10000000算术右移7位,它应该成为11111111,而如果逻辑右移7位,它将成为00000001,不考虑符号位。这就是算术右移和逻辑右移的区别。
在程序集中,可以使用算术右移来除带符号的数据。将一个数字右移N位相当于将这个数字除以2的N次方。
以上就是关于Java 中算术右移和逻辑右移的区别的内容了,希望对大家有帮助。