Ответ 1
Используйте ключевое слово unchecked.
unchecked
{
int b = (int)0xFFFFFFFF;
}
или даже короче
int b = unchecked((int)0xFFFFFFFF);
Можно ли установить int
отрицательное значение, используя шестнадцатеричный литерал в С#? Я проверил спецификацию целые литеры, но ничего не сказал.
Например:
int a = -1; // Allowed
int b = 0xFFFFFFFF; // Not allowed?
Шестнадцатеричные нотации яснее для моего приложения, и я бы предпочел не использовать uint
, потому что мне нужно было бы сделать дополнительное кастинг.
Используйте ключевое слово unchecked.
unchecked
{
int b = (int)0xFFFFFFFF;
}
или даже короче
int b = unchecked((int)0xFFFFFFFF);
Я думаю, вы можете использовать -0x1
с С#
Вам нужно бросить его и поставить в неконтролируемый контекст.
unchecked {
int i = (int)0xFFFFFFFF;
}
Это приведет к выполнению задания без снятых операций или кастинга.
int i = 0xFF << 24 | 0xFF << 16 | 0xFF << 8 | 0xFF;
Вы можете использовать класс "Преобразовать":
string hex = "FF7F";
int myInt = Convert.ToInt32(hex, 16);