位操作符(左移右移的简单理解)

时间:2024-03-22 10:56:10

以下均使用32位

1.左移:左边的二进制丢弃,右边补0(正负数一样)

比如:7<<2 表示左移两位(图片用8位表示)

位操作符(左移右移的简单理解)

7二进制为:00000000 00000000 00000000 00000111

左移两位后为 00000000 00000000 00000000 00011100

转换为十进制为:28

记忆法:相当于每左移一位乘2,以上列子:7x2x2=28

又比如:-7<<2 表示左移两位

-7二进制为:11111111 11111111 11111111 11111000

左移两位后为 :11111111 11111111 11111111 11000000

转换为十进制为:-64

记忆法:正数相当于每左移一位乘2,以上列子:7x2x2=28

负数没有记忆法

2.右移:将一个运算对象的各二进制位全部右移若干位,正数左补0,负数左补1

比如:8>>2(图片用8位表示)

位操作符(左移右移的简单理解)

8二进制为:00000000 00000000 00000000 00001000

右移两位后为 00000000 00000000 00000000 00000010

转换为十进制为:2

又比如:-8<<2 表示左移两位

-8二进制为:11111111 11111111 11111111 11111000

右移两位后为 :11111111 11111111 11111111 11111110

转换为十进制为:-2

记忆法:正数相当于每左移一位除以2,以上列子:8/2/2=2

负数没有记忆法