Bit manipulation 语句(1<;<;y)在按位运算中的含义是什么

Bit manipulation 语句(1<;<;y)在按位运算中的含义是什么,bit-manipulation,bitwise-operators,Bit Manipulation,Bitwise Operators,我是位运算的完全初学者(在C方面也不是很有经验),我遇到了以下表达式: x |= (1<<y) x |=(1) 是的缩写 x = x | ... 它将x |…的值分配给x 1 << y 所以 第一条语句表示将1(0b0000001)的二进制表示形式左移y位,然后将值或X位。 第二种说法的假设是正确的。 第三条语句将产生4(0b0000000100)。 在位运算语义方面,C标准定义了所有要表示的位运算,以便以2次幂的升序值从右到左读取二进制数。您不需要担心尾数或两个补

我是位运算的完全初学者(在C方面也不是很有经验),我遇到了以下表达式:

x |= (1<<y)
x |=(1)
是的缩写

x = x | ...
它将
x |…
的值分配给
x

1 << y
所以


第一条语句表示将1(0b0000001)的二进制表示形式左移y位,然后将值或X位。 第二种说法的假设是正确的。 第三条语句将产生4(0b0000000100)。 在位运算语义方面,C标准定义了所有要表示的位运算,以便以2次幂的升序值从右到左读取二进制数。您不需要担心尾数或两个补码等问题,编译器将为您处理。因此(0b00100)=4,(0b000010)=2,(0b00001)=1,依此类推

x |= ...
x = x | ...
1 << y
00000001 << 1 -> 00000010
x |= (1 << y)
x = 01010101
x |= (1 << 1)   -> 01010111  (it set the 2nd bit to 1)