我一直感到很惊讶,即使在这段时间里一直使用C#之后,我仍然设法找到了我不知道的东西…
我已经尝试过在互联网上搜索此内容,但是在搜索中使用“〜”对我来说效果不佳,我也没有在MSDN上找到任何内容(并不是说它不存在)
我最近看到了这段代码,波浪号(〜)是什么意思?
/// <summary> /// Enumerates the ways a customer may purchase goods. /// </summary> [Flags] public enum PurchaseMethod { All = ~0, None = 0, Cash = 1, Check = 2, CreditCard = 4 }
看到它令我有些惊讶,所以我尝试对其进行编译,并且它起作用了……但是我仍然不知道它的含义/作用。有帮助吗?
〜是一元运算符的补码运算符-它翻转其操作数的位。
~0 = 0xFFFFFFFF = -1
用二进制补码算法 ~x == -x-1
~x == -x-1
在几乎所有从C借用语法的语言中都可以找到〜运算符,包括Objective-C / C ++ / C#/ Java / Javascript。