将-1转换为uint C#

use*_*096 5 c# overriding unchecked uint

将-1转换为uint将不起作用"((uint)( - 1))"解决方案?

num10 = ((uint)(-1)) >> (0x20 - num9);
Run Code Online (Sandbox Code Playgroud)

错误:常量值'-1'无法转换为'uint'(使用'unchecked'语法覆盖)

p.s*_*w.g 9

使用

uint minus1 = unchecked((uint)-1);
uint num10 = (minus1) >> (0x20 - num9);
Run Code Online (Sandbox Code Playgroud)

甚至更好

uint num10 = (uint.MaxValue) >> (0x20u - num9);
Run Code Online (Sandbox Code Playgroud)


Mic*_*tta 1

无符号整数只能表示正值。它不能代表-1。

如果要表示负值,则需要使用有符号类型,例如int.