如何更改字节变量中的每一位

时间:2016-02-01 12:36:22

标签: c# bit-manipulation bitwise-operators

我有一个字节数

// in decimal
byte number = 250
// result who I want is number = 5

// in binary 
byte number = 0b11111010
// result who I want is number = 0b00000101

如何反转此数字中的每一位?我尝试左移,右移操作,使用OR,AND,但不是这样做我需要的。

1 个答案:

答案 0 :(得分:7)

使用按位not运算符~

byte b = 0b11111111;
byte flipped = ~b; // 0b00000000

编辑:从MSDN取得的解释

  

〜运算符查看表达式值的二进制表示,并对其执行按位求反运算。   表达式中任何1的数字在结果中变为0。表达式中任何0的数字在结果中变为1。   当〜运算符作用于整数数据类型的操作数时,它不执行强制操作并返回与操作数相同的数据类型的值。当操作数是非整数数据类型时,在执行操作之前将值强制转换为int类型,并且操作符的返回值的类型为int。

相关问题