C程序中,左移“<<”、右移“>>” 的具体用法是什么?

2024-11-30 14:31:00
推荐回答(2个)
回答1:

C语言中,“<<”为左移运算符,“>>”为右移运算符。

具体使用方法如下:

1、左移运算符(<<)

将一个运算对象的各二进制位全部左移若干位(左边的二进制位丢弃,右边补0)。

例:a = a << 2 将a的二进制位左移2位,右补0,

左移1位后a = a * 2;

若左移时舍弃的高位不包含1,则每左移一位,相当于该数乘以2。


2、右移运算符(>>)

将一个数的各二进制位全部右移若干位,正数左补0,负数左补1,右边丢弃。

操作数每右移一位,相当于该数除以2。

例如:a = a >> 2 将a的二进制位右移2位。

左补0 or 补1 得看被移数是正还是负。

回答2:

这是两个位操作运算,是对参数二进制方式的位移,移动后,空出的位用0补上。例如:
0111 0101 b << 2 :对这个数左移二位后:1101 0100 b;
再如:
5 << 3 :先转换成二进制:0000 0101 b << 3 = 0010 1000 b = 0x28