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

Целые типы в Go

Целые числа в Go представлены следующими типами: int8, int16, int32, int64 и int. Разница между ними - сколько байтов занимает ячейка в оперативной памяти и какое самое большое число в нее помещается.

Самым основным типом для чисел является тип int32, когда ширина должна быть одной и той же везде. Это 4 байта, около двух миллиардов в плюс и в минус. Количество, номер и сумма в разумных пределах туда входят. Например, число 1500000 помещается, а число 3000000000 больше двух миллиардов - и в int32 уже не влазит.

Тип int проблемный, так как для него размер ячейки зависит от компьютера. На 32-битной системе это 4 байта, около двух миллиардов в плюс и в минус. На обычном 64-битном компьютере - 8 байт, около девяти квинтиллионов в плюс и в минус. Один и тот же текст на разных компьютерах вмещает в int разные числа.

Тип int64 занимает 8 байт и на 32-битной системе, и на 64-битной, около девяти квинтиллионов в плюс и в минус. Для чисел, которые не помещаются в int32, стоит пользоваться именно этим типом.

Тип int16 состоит из 2 байтов, около 32 тысяч в плюс и в минус. Число вроде 40000 в эти 2 байта уже не поместится.

Тип int8 состоит из 1 байта, около 128 в плюс и в минус. Число вроде 200 в этот байт уже не поместится.

Запишем три числа в подходящие типы и выведем их:

var num1 int16 = 9 var num2 int32 = 1500000 var num3 int64 = 3000000000 fmt.Println(num1) fmt.Println(num2) fmt.Println(num3)

Сведем типы и диапазоны:

Тип Байты Диапазон
int8 1 от -128 до 127
int16 2 от -32768 до 32767
int32 4 от -2147483648 до 2147483647
int64 8 от -9223372036854775808 до 9223372036854775807
int 4 или 8 на 32 битах как int32, на 64 битах как int64

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

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

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

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

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

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

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

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

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

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

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