【问题标题】:Why isn't ~ of 6 = 1 since it flips the bits?为什么 ~ of 6 = 1 因为它翻转了位?
【发布时间】: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】:

~ 运算符将类型转换为int。如果你想byte - 使用演员:

byte num1 = 6;
byte num2 = 12;
Console.WriteLine((byte)~num1);
Console.WriteLine((byte)~num2);

【讨论】:

  • 哇,我想我应该注意这一点。但是为什么 (int)~num1 会是 -7
  • @AmandaSai98b @AmandaSai98b (byte)6 二进制是110(int)6 二进制是00000000000000000000000000000110(int)~6 二进制是11111111111111111111111111111001-7 作为有符号整数
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2013-03-03
  • 2013-01-25
  • 1970-01-01
  • 2013-06-30
  • 2016-03-24
相关资源
最近更新 更多