Setting ints to negative values using hexadecimal literals in C#

c#, hex, integer

Solution

Use the unchecked keyword.

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

or even shorter

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

Problem

Is there any way to set an `int` to a negative value using a hexadecimal literal in C#? I checked the specification on Integer literals but it didn't mention anything. For example: ``` int a = -1; // Allowed int b = 0xFFFFFFFF; // Not allowed? ``` Hexadecimal notation is clearer for my application, and I'd prefer not to use `uint`s because I would need to do some extra casting.

Original source

Related problems