我看到有人使用1 << i,有时使用了[[1 << n。这是什么,怎么用?
n
次。 n
零位数字将添加到右侧。因此,如果1b
,则100b
变为n == 2
等。
[如果以小数点看,将其移位一次(n==1
)等于将该值乘以2。移位两次等于乘以4的运算,依此类推。
一个优点是位移比“实”整数乘法快。
[通常在计算中,您会看到所谓的位域,其中每个位都在打开或关闭某物,否则具有某些特殊含义。
例如,在微控制器上,寄存器的每个位可能代表连接到LED的数字输出。
在那里,该符号可用于创建一个“掩码”,该掩码表示程序员想要操纵的位数(i
)。
例如
[x &= ~(1<<4)
清除第4位,而x |= (1<<4)
将设置相同的位。
[如果i
太高或操作的左侧为负值,则移位可能会在某些系统上导致不确定的行为。