这是一个后续问题.所以,Java商店的整数是两个补码,你可以做到以下几点:
int ALPHA_MASK = 0xff000000;
Run Code Online (Sandbox Code Playgroud)
在C#中,这需要使用无符号整数uint,因为它将此解释为4278190080而不是-16777216.
我的问题是,如何在c#中以十六进制表示法声明负值,以及内部表示的整数究竟是如何?这里与Java有什么不同?
我想-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#中使用二进制文字声明整数值?