Создаем портфолио за 1 месяц
К концу месяца: 4 классных проекта в вашем портфолио! Стоимость: 100$. Подробности...
⊗csPmNuUn 34 of 436 menu
◀ ▶

Беззнаковые целые в C#

Целое число можно сделать беззнаковым. В C# для этого есть типы uint, ulong и ushort: буква U в имени означает беззнаковый вариант. Беззнаковое число бывает только нулем и положительным. Отрицательных значений у него нет.

Так делают, чтобы расширить диапазон возможных чисел. Беззнаковый тип занимает столько же байтов, сколько и тип со знаком. Но так как отрицательные числа мы не берем, то положительных сможем взять в два раза больше.

То есть разница проявляется в том, как мы интерпретируем те же байты - в зависимости от нашей интерпретации получается другой возможный диапазон. Байтов столько же и комбинаций битов столько же - меняется набор допустимых чисел, а верхняя граница для положительных выше.

Для примера у типа int верхняя граница около двух миллиардов. У типа uint она примерно вдвое выше: до 4294967295. Число 3000000000 в int не входит, а в uint входит.

Беззнаковый тип берут и тогда, когда минус по смыслу числа не нужен. Количество штук, длина текста, номер элемента и размер в байтах не бывают отрицательными.

Вот таблица диапазонов беззнаковых чисел:

Тип Байты Диапазон
ushort 2 от 0 до 65535
uint 4 от 0 до 4294967295
ulong 8 от 0 до 18446744073709551615

В каком диапазоне изменяются числа типа ushort?

В каком диапазоне изменяются числа типа uint?

В каком диапазоне изменяются числа типа ulong?

В каком диапазоне изменяются числа типа ulong?

Есть число -1. Помещается ли оно в диапазон типа ushort?

Есть число 70000. Помещается ли оно в диапазон типа ushort?

Есть число 3000000000. Помещается ли оно в диапазон типа uint?

Есть число -5. Помещается ли оно в диапазон типа uint?

Есть число -1. Помещается ли оно в диапазон типа ulong?

← →
↑
Мы используем cookie для работы сайта, аналитики и персонализации. Обработка данных происходит согласно Политике конфиденциальности.
принять все настроить отклонить