Java 中 算术右移和逻辑右移有什么区别

2025-04-16 09:10:41
推荐回答(1个)
回答1:

逻辑右移就是不用考虑最高位的符号位,只需要在移动之后的空位补0就行了,例如
初始数据:
1111 1111
右移一位:
0111 1111
最高位补0
算术右移则是要考虑符号位,如果最高位为1、则移动后在最高位补1、若最高位不为1,则移动后在最高位补0,例如
初始数据,最高位为1:
1111 1001
右移一位
1111 1100
初始数据,最高位不为1:
0111 1001
右移一位
0011 1100