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

Беззнаковые типы в Go

Целое число можно сделать беззнаковым. Имена таких типов начинаются с uint: uint8, uint16, uint32, uint64 и uint. Беззнаковое число бывает только нулем и положительным. Отрицательных значений у него нет. Тип byte - это другое имя uint8.

Так делают, чтобы расширить диапазон. Байтов столько же, сколько у типа со знаком. Место, которое уходило на минус, отдано большим положительным числам. У типа int32 верхняя граница около двух миллиардов. У типа uint32 она примерно вдвое выше: до 4294967295. Число 3000000000 в int32 не входит, а в uint32 входит.

Тип uint проблемный, так как для него размер ячейки зависит от компьютера. На 32-битной системе это 4 байта, на обычном 64-битном - 8. Верхняя граница совпадает с uint32 или с uint64.

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

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

Тип Байты Диапазон
uint8 1 от 0 до 255
uint16 2 от 0 до 65535
uint32 4 от 0 до 4294967295
uint64 8 от 0 до 18446744073709551615
uint 4 или 8 на 32 битах как uint32, на 64 битах как uint64

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

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

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

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

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

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

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

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

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

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