<<左移操作符 >>右移操作符 到底是怎么计算的呢
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不