我是位运算的初学者(在 C 方面也不是很有经验),我遇到了以下表达式:
x |= (1<<y)
起初我以为它的意思是“x 等于 x 或 y 左移一位”,但后来我意识到这将是:
x |= (y<<1)
最后,我认为它的意思是“x 等于 x 或 1 左移 y 位”,但我不明白 1 在 8 位寄存器中的位置,是 00000001 吗?以便:
a = 2
b = 1<<a // so b=00000010
谁能告诉我这句话的正确含义。另外,如果有人有一个很好的链接来解释按位语法,我将不胜感激。谢谢。