Назад к вопросам
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)))
}