【发布时间】:2020-05-06 14:05:10
【问题描述】:
我看到有人用过 1 ,有时是 1 。这是什么以及如何使用它?
【问题讨论】:
-
你知道所用运算符的含义吗?
我看到有人用过 1 ,有时是 1 。这是什么以及如何使用它?
【问题讨论】:
当您考虑二进制表示的值时,它会将值向左移动n 次。 n 将在右侧添加零位。
如果n == 2,则1b 变为100b 等等。
如果你用十进制看,移位一次(n==1)相当于将值乘以 2。移位两次等于乘以 4 运算,依此类推。
一个优点是位移可以比“真正的”整数乘法更快。
在计算中,您也经常会看到所谓的位域,其中每个位都可以打开或关闭某些东西,或者具有某些特殊含义。
例如,在微控制器上,寄存器的每个位都可能代表连接到 LED 的数字输出。
在那里,符号可用于创建一个“掩码”,表示程序员想要操作的位号 (i)。
例如
x &= ~(1<<4) 清除第 4 位,而x |= (1<<4) 将设置相同的位。
请注意,如果i 太高或操作的左侧为负值,则移位可能会导致某些系统出现未定义的行为。
【讨论】: