c语言中符号<<是什么意思

Python026

c语言中符号<<是什么意思,第1张

左移运算符(<<)

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

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

左移1位后a = a * 2

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

右移运算符(>>)

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

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

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

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

<<:左移运算,与其对用的有>>(右移)

实现过程是把该变量先变成2进制数,然后进行移位,在用0补齐。

例:unsigned char x;

x=127//(二进制:0111 1111)

//x<<1后的结果:1111 1110 <=> 254

printf(''%o",x<<1) //按8进制输出376

说明事项1:移位运算都是2的整数倍,*2 和<<1的运算结果是一样的,但是移位的运行效率要高

2:有符号数不要轻易使用移位,符号位比较容易出问题。