C#7二进制文字为-1

Ale*_*nda 10 .net c# c#-7.0

我想-1使用新的二进制文字功能声明文字:

int x = 0b1111_1111_1111_1111_1111_1111_1111_1111;
Console.WriteLine(x);
Run Code Online (Sandbox Code Playgroud)

但是,这不起作用,因为C#认为这是一个uint文字,Cannot implicitly convert type 'uint' to 'int'...因为我们处理二进制数据,所以我觉得这有点奇怪.

有没有办法-1在C#中使用二进制文字声明整数值?

Sam*_*sov 4

在尝试了一些案例后,我终于发现了这个

int x = -0b000_0000_0000_0000_0000_0000_0000_0001;
Console.WriteLine(x);
Run Code Online (Sandbox Code Playgroud)

结果打印-1。

如果我理解一切正确,他们会使用 -/+ 标志,所以当你输入 32 1 时,你会进入 uint