正负数左移右移规则

1、正数左移、右移,以及负数左移都是补0;

10的二进制:1010

左移2位:101000=40

右移2位:0010=2

-10的二进制源码:10001010 取反 11110101 补码 11110110

左移2位 11011000 取反 10100111 补码 10101000=-40

 

2、负数右移高位是补1

-10的二进制源码:10001010 取反 11110101 补码 11110110

 右移2位11111101 取反10000010 补码 10000011=-3

 

无符号右移只对负数有影响,高位是补0

java中是4个字节

-10的二进制源码:10000000 00000000 00000000 00001010 取反 11111111 11111111 11111111 11110101 补码 11111111 11111111 11111111 11110110

 无符号右移24位00000000 00000000 00000000 11111111=2的8次方-1=255
 

 

posted @ 2023-09-13 23:57  傲云萧雨  阅读(508)  评论(0编辑  收藏  举报