Следите за новинками
в нашем Telegram канале. Жми, чтобы подписаться:)
⊗cpPmNuUn 29 of 390 menu
◀ ▶

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

Целое число можно сделать беззнаковым. Для этого перед типом пишут слово unsigned. Беззнаковое число бывает только нулем и положительным. Отрицательных значений у него нет.

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

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

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

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

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

Тип Байты Диапазон
unsigned short 2 от 0 до 65535
unsigned int 4 от 0 до 4294967295
unsigned long 4 или 8 от 0 до верхней границы этого размера
unsigned long long 8 от 0 до 18446744073709551615

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

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

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

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

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

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

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

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

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

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