如题,3种位移运算符可分为2以10和-10为例:
10原码、反码、补码:00000000 00000000 00000000 00001010
-10原码:10000000 00000000 00000000 00001010
反码: 11111111 11111111 11111111 11110101
补码: 11111111 11111111 11111111 11110110(计算机中以补码表示负数)
一、有符号位移<<,>>位移前后符号位不变
1.<<向左位移
10<<2原码左移2位为00000000 00000000 00000000 00101000,10进制为40
-10<<2,即-10的补码11111111 11111111 11111111 11110110左移2位,得到11111111 11111111 11111111 11011000,反码:11111111 11111111 11111111 11010111,原码:10000000 00000000 00000000 10101000,换算为10进制为-40。
2.>>向右位移
10>>2原码右移2位为00000000 00000000 00000000 00000010,10进制为2
-10>>2,-10的补码11111111 11111111 11111111 11110110右移2位,得到11111111 11111111 11111111 11111101,反码为11111111 11111111 11111111 11111100,原码:10000000 00000000 00000000 00000011,换算为10进制为-3
二、无符号位移>>>位移后不保留符号位,最高位补0
10>>>2yuan原码无符号右移2位,00000000 00000000 00000000 00000010,10进制为2
-10>>>2,-10的补码11111111 11111111 11111111 11110110无符号右移2位,得到 00111111 11111111 11111111 11111101,0开头为正数,换算为10进制为1073741821。