我有一个字节数
// 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,但不是这样做我需要的。
答案 0 :(得分:7)
使用按位not
运算符~
byte b = 0b11111111;
byte flipped = ~b; // 0b00000000
编辑:从MSDN取得的解释
〜运算符查看表达式值的二进制表示,并对其执行按位求反运算。 表达式中任何1的数字在结果中变为0。表达式中任何0的数字在结果中变为1。 当〜运算符作用于整数数据类型的操作数时,它不执行强制操作并返回与操作数相同的数据类型的值。当操作数是非整数数据类型时,在执行操作之前将值强制转换为int类型,并且操作符的返回值的类型为int。