首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >逻辑左移0

逻辑左移0
EN

Stack Overflow用户
提问于 2019-08-02 17:09:45
回答 2查看 7.8K关注 0票数 5

这里我的问题是为什么逻辑左移0是1。1<<0 = 1,但是怎么做呢?

根据定义,逻辑左移位通过将位向左移动n位来工作。

逻辑左移的工作原理是将数与2 n <<数相乘=2*n*数,而不是在number=0情况下;

即使0或负数存储在2的补码中,所以对于0,所有位必须是1,那么它的逻辑左移位是如何工作的。

代码语言:javascript
复制
1<<0 =1         1<<2=4
2<<0 =2         2<<2=8
3<<0 =3         3<<2=12
EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2019-08-02 17:30:25

位左移将右手数字乘以2乘以左手侧的功率。例如:1 << 21 * 2^2相同( ^表示指数,而不是XOR)。

在二进制文件中是0001,那么0的位转换不会做任何事情,这与您观察到的是一致的。

因此,任何数字x << 0都等价于x * 2^0,也就是x * 1,也就是x

票数 7
EN

Stack Overflow用户

发布于 2021-03-23 17:34:12

你犯了一个错误,认为它是"2 * n“,但它是"2^n”。和2*3=6一样,2^3是8。第二,如果你有0001并且你移动0位,它不会影响它,因为2^0=1和1*1是1。但是如果你移动1位,它会乘以"2“。例如,0001和你移动了1位.它变成0010,也就是2。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/57330870

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档