访问char c ++中的各个位

Ano*_*mer 17 c++ bit

我将如何访问c ++类型中的各个位, char或者例如任何c ++其他类型.

Mat*_*att 47

如果你想要访问位N:

得到: (INPUT >> N) & 1;

组: INPUT |= 1 << N;

取消设置: INPUT &= ~(1 << N);

切换: INPUT ^= 1 << N;

  • 人们应该总是强调N是什么.在这种情况下,我们将位0作为最右侧和最低位.还有其他一些符号,不同的做法. (9认同)

qdi*_*dii 5

您可以使用二元运算符|(or)、&(and) 和^(xor) 来设置它们。要设置 variable 的第三位a,您可以输入,例如: 

a = a | 0x4

// c++ 14
a = a | 0b0100
Run Code Online (Sandbox Code Playgroud)

注意 4 的二进制表示是 0100