以下均使用32位
一.左移
1.定义
左边的二进制丢弃,右边补0(正负数一样)
2. 例子
例子1:正数左移
7<<2 表示左移两位(图片用8位表示)
步骤:
①求二进制数
7二进制为:00000000 00000000 00000000 00000111
②左移
左移两位后为 00000000 00000000 00000000 00011100
③结果:
转换为十进制为:28
④总结:
记忆法:相当于每左移一位乘2,以上列子:7x2x2=28
例子2:负数左移
-7<<2 表示左移两位
步骤:
①求二进制数(涉及知识点:负数十进制转二进制)
-7二进制为:11111111 11111111 11111111 11111001
②左移
左移两位后为 :11111111 11111111 11111111 11100100
③结果:(涉及知识点:负数二进制转十进制)
转换为十进制为:-28
④总结:
负数没有记忆法
二.右移
1.定义
将一个运算对象的各二进制位全部右移若干位,正数左补0,负数左补1
2.例子
例子1
8>>2(图片用8位表示)
步骤:
①求二进制数
8二进制为:00000000 00000000 00000000 00001000
②右移
右移两位后为 00000000 00000000 00000000 00000010
③结果
转换为十进制为:2
例子2
-8<<2 表示左移两位
步骤
①求二进制数:
-8二进制为:11111111 11111111 11111111 11111000
②右移
右移两位后为 :11111111 11111111 11111111 11111110
③结果
转换为十进制为:-2
④总结
记忆法:正数相当于每左移一位除以2,以上列子:8/2/2=2
负数没有记忆法