1 << i 是什么意思,我如何使用它?



我看到有人用1 <<i,有时用1 <<n。这是什么,我该如何使用它?

当您考虑二进制表示中的值时,它会将值向左移动n次。n个零位数字将添加到右侧。

所以1b如果n == 2就变成了100b等.

如果你从十进制来看,移动一次(n==1)相当于将值乘以2。换档 2 次等于 4 次操作,依此类推。

一个优点是位移可能比"真正的"整数乘法更快。

在计算中,您经常会看到所谓的位字段,其中每个位都打开或关闭某些东西,或者具有某种特殊含义。

例如,在微控制器上,寄存器的每个位可能代表连接到LED的数字输出。

在那里,符号可以用来创建一个"掩码",表示程序员想要操作的位号(i)。

例如

x &= ~(1<<4)清除第 4 位,而x |= (1<<4)将设置相同的位。

请注意,如果i过高或操作左侧具有负值,则移位可能会导致某些系统上出现未定义的行为。

相关内容

最新更新