在C#中使用hex文字将整数设置为负值

有没有办法在C#中使用hex文字将int设置为负值? 我查看了Integer文字的规范,但没有提到任何内容。

例如:

 int a = -1; // Allowed int b = 0xFFFFFFFF; // Not allowed? 

hex表示法对我的应用程序来说更清楚,我宁愿不使用uint因为我需要做一些额外的转换。

使用未经检查的关键字。

 unchecked { int b = (int)0xFFFFFFFF; } 

甚至更短

 int b = unchecked((int)0xFFFFFFFF); 

我认为你可以使用-0x1和c#

你必须把它投射并放在一个未经检查的上下文中。

 unchecked { int i = (int)0xFFFFFFFF; } 

这将在没有未经检查的操作或强制转换的情况下完成工作。

 int i = 0xFF << 24 | 0xFF << 16 | 0xFF << 8 | 0xFF; 

您可以使用“转换”类:

 string hex = "FF7F"; int myInt = Convert.ToInt32(hex, 16);