以下均使用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
负数没有记忆法