为了账号安全,请及时绑定邮箱和手机立即绑定

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

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

Go
红颜莎娜 2019-03-28 22:18:25
c语言中符号<<是什么意思
查看完整描述

4 回答

?
拉风的咖菲猫

TA贡献1995条经验 获得超2个赞

左移运算符(<<)

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

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

左移1位后a = a * 2;

若左移时舍弃的高位不包含1,则每左移一位,相当于该数乘以2。
右移运算符(>>)

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

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

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

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

查看完整回答
反对 回复 2019-03-31
?
PIPIONE

TA贡献1829条经验 获得超9个赞

左移运算符
<<(左移)
运算规则:
按二进制形式把所有的数字向左移动对应的位数,高位移出(舍弃),低位的空位补零。
语法格式:
需要移位的数字 << 移位的次数
例如: 3 << 2,则是将数字3左移2位
计算过程:
3 << 2 首先把3转换为二进制数字0000 0011,然后把该数字高位(左侧)的两个零移出,其他的数字都朝左平移2位,最后在低位(右侧)的两个空位补零。则得到的最终结果是0000 1100,则转换为十进制是12。

查看完整回答
1 反对 回复 2019-03-31
?
潇湘沐

TA贡献1816条经验 获得超6个赞

herenzi 
2017-12-01

展开全部

意思是向左移位

比如char a = #0000 0001;
那么 a << 1 == #0000 0010;
可以看到1向左移动了一位,并且在原本的1位上添加了一个0
那么这个时候pinrtf("%d",a); 结果输出2
同理char c = #0010 1100; //c ==44
c << 2 == #1011 0000;
printf("%d",c); //输出 174

 


查看完整回答
反对 回复 2019-03-31
  • 4 回答
  • 0 关注
  • 17001 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信