将-1转换为uint将不起作用 "((uint)(-1))" 解决方案?
错误: 常量值“-1”无法转换为“uint”(使用“unchecked”语法来覆盖)
num10 = ((uint)(-1)) >> (0x20 - num9);
错误: 常量值“-1”无法转换为“uint”(使用“unchecked”语法来覆盖)
num10 = ((uint)(-1)) >> (0x20 - num9);
uint minus1 = unchecked((uint)-1);
uint num10 = (minus1) >> (0x20 - num9);
甚至更好
uint num10 = (uint.MaxValue) >> (0x20u - num9);
unchecked
{
num10 = ((uint)(-1)) >> (0x20 - num9);
}
x + (-x) == 0
如果不使用未经检查的区域,在C#中创建“负”uint,您可以使用等效的(~x)+1
,它与-x
相同。