Подтвердить что ты не робот

Разница в использовании int и uint и когда использовать

В чем разница между использованием int и uint? Все примеры, которые я видел до сих пор, используют int для целых чисел. Любое преимущество использования uint? Спасибо.

4b9b3361

Ответ 1

uint означает unsigned int, вы можете использовать его для диапазона 0.. + 4G
где нормальный (подписанный) int имеет диапазон -2G.. + 2G.

Когда его использовать? Больше никогда. Это не CLS-совместимый тип, поэтому вы никогда не должны использовать его в открытом интерфейсе сборки. Не все языки .NET могут справиться с этим.

Их основное использование - в P/Invoke для неуправляемого кода и некоторых редких битовых масок. В .NET мы делаем большинство битовых масок с обычными подписанными ints.

Ответ 2

Прежде всего, uint не совместим с CLS (другие языки, которые нацелены на платформу .NET, не обязательно реализуют его), и вы должны избегать использования его в публичной api, когда это возможно. Ну и, конечно, они различаются по диапазону (0... 4 294 967 295) для uint и (-2,147,483,648 до 2,147,483,647) для int.

Ответ 3

Основное отличие состоит в том, что int подписан, а uint - без знака. Поскольку uint не допускает отрицательных чисел, он имеет диапазон от 0 до 4 294 967 295 по сравнению с диапазоном от -2147,483,648 до 2,147,483,647 для int

Если у вас есть сценарий, в котором вы не можете иметь отрицательные целые числа или нет смысла иметь отрицательное значение, то целые числа без знака могут быть хорошим выбором. Однако, если вам не нужен дополнительный диапазон и просто никогда не опускайтесь ниже 0, то это не имеет особого значения, и вы можете сохранить символ с помощью int.