这个波浪号在 C# 中的用途是什么?

本文关键字:是什么 | 更新日期: 2023-09-27 18:35:26

我正在尝试移植此 C# 代码:

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

如果我理解正确,~符号不是按位补码吗,那么做~0有什么意义?然后返回它?

这个波浪号在 C# 中的用途是什么?

来自 ~ 运算符文档:

~运算符对其操作数执行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. 当解释为无符号时,这将等同于UINT_MAX。当解释为已签名时,这将被-1