Назад к вопросам
Junior
104
questionbank

Сколько байт занимает хранение числа?

Sobes Copilot

Получайте ответы в реальном времени

Ответ от нейросети

sobes.tech AI

Размер хранения числа в Go зависит от его типа.

Тип данных Размер (байты) Диапазон значений
int Зависит от архитектуры (32 или 64 бита) Зависит от архитектуры
uint Зависит от архитектуры (32 или 64 бита) Зависит от архитектуры
int8 1 -128 до 127
uint8 1 0 до 255
int16 2 -32768 до 32767
uint16 2 0 до 65535
int32 4 -2147483648 до 2147483647
uint32 4 0 до 4294967295
int64 8 -9223372036854775808 до 9223372036854775807
uint64 8 0 до 18446744073709551615
float32 4 Около ±3.4e38
float64 8 Около ±1.8e308
complex64 8 Два значения float32 (действительная и мнимая части)
complex128 16 Два значения float64 (действительная и мнимая части)
byte 1 Псевдоним для uint8
rune 4 Псевдоним для int32 (Unicode code point)

Пример определения размера типа на конкретной платформе:

import (
	"fmt"
	"unsafe"
)

func main() {
	// Размер int и uint зависят от архитектуры процессора
	fmt.Printf("Size of int: %d bytes\n", unsafe.Sizeof(int(0)))
	fmt.Printf("Size of uint: %d bytes\n", unsafe.Sizeof(uint(0)))

	// Размеры фиксированных типов постоянны
	fmt.Printf("Size of int8: %d bytes\n", unsafe.Sizeof(int8(0)))
	fmt.Printf("Size of float64: %d bytes\n", unsafe.Sizeof(float64(0)))
}