C语言中的左移操作符和右移操作符是什么意思

<<左移操作符 >>右移操作符 到底是怎么计算的呢

b=a<<n 等价于b=a*2^n
说个容易记的
左移n位就是把这个数转为二进制后 后面加n个零 前面的n位舍弃
右移n位就是把这个数转为二进制后 前面加n个零 后面的n位舍弃

什么意思呢
咱看代码
第一行是十六进制打印 第二行是十进制打印
先看十进制的
b=24也就是a=24,自己快拿出你的小本子算算3*2^3 是不是等于24
再看一下十六进制
(这里说一下 之所以说这个是看一下原理 理解最重要嘛
本来想打印二进制直接 呃呃结果发现并没有这个转换符 尴尬
所以只能打印十六进制咯)
3 是不是0011
18 是不是0001 1000
所以3左移三位后怎么变成的18 也就是3怎么变成的24就是这样来的咯在这里插入图片描述
b=a>>n 等价于什么呢 有聪明的小伙伴心想 肯定是b=a/2^n了 真聪明 就是这样的

看图

8二进制0000 1000
1二进制0000 0001
这就是右移
那快掏出你那小本子算算8/2^3是不是等于1呀
呃呃为啥十进制十六进制都是1不

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值