这个代字号在C#中的目的是什么?

时间:2016-02-20 13:34:44

标签: c# syntax chipmunk

我试图移植这个C#代码:

public static ulong WILDCARD_COLLISION_TYPE
{
    get
    {
        int parse = ~0;
        return (ulong)parse;
    }
}

如果我理解正确,~符号不会执行按位补码,那么~0的重点是什么?然后归还?

1 个答案:

答案 0 :(得分:7)

来自~ Operator documentation

  

~运算符对其操作数执行bitwise补码运算,具有反转每个位的效果。为int, uint, long, and ulong.

预定义了按位补码运算符

例如:

unsigned int i = ~0;

Result: Max number I can assign to i

and

signed int y = ~0;

Result: -1

所以更多信息我们可以说~0只是一个int,所有位都设置为1.当解释为unsigned时,这将等同于UINT_MAX。解释为已签名时,这将是-1