【发布时间】:2022-01-09 06:18:02
【问题描述】:
请参见下面的示例。如果我们考虑字节类型中的所有位,我希望它是 1 或 249。
我阅读了来源,但我不明白为什么我无法掌握它。
byte num1 = 6;
byte num2 = 12;
Assert.IsTrue(~num1 == 1);
Assert.IsTrue(~num2 == 3);
【问题讨论】:
标签: c# bitwise-operators
请参见下面的示例。如果我们考虑字节类型中的所有位,我希望它是 1 或 249。
我阅读了来源,但我不明白为什么我无法掌握它。
byte num1 = 6;
byte num2 = 12;
Assert.IsTrue(~num1 == 1);
Assert.IsTrue(~num2 == 3);
【问题讨论】:
标签: c# bitwise-operators
~ 运算符将类型转换为int。如果你想byte - 使用演员:
byte num1 = 6;
byte num2 = 12;
Console.WriteLine((byte)~num1);
Console.WriteLine((byte)~num2);
【讨论】:
(byte)6 二进制是110,(int)6 二进制是00000000000000000000000000000110,(int)~6 二进制是11111111111111111111111111111001 即-7 作为有符号整数