[英]Bitwise “~” Operator in C#
考虑以下单元测试代码:
[TestMethod]
public void RunNotTest()
{
// 10101100 = 128 + 32 + 8 + 4 = 172
byte b = 172;
// 01010011 = 64 + 16 + 2 + 1 = 83
Assert.AreEqual(83, (byte)~b);
}
该测试通过。 但是,如果不进行字节转换,它将失败,因为“〜”运算符返回的值为-173。 为什么是这样?
因为~
返回一个int。 请参见〜运算符(C#参考) (MSDN)
它仅针对int, uint, long, and ulong
预定义-因此在byte
上使用它时存在隐式byte
。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.