Sobes.tech
Junior

Чӣ қадар байт барои нигоҳ доштани як рақам лозим аст?

sobes.tech AI

Ҷавоб аз 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)

Масалан барои муайян кардани андозаи навъи дар платформаи махсус:

import (
	"fmt"
	"unsafe"
)

func main() {
	// Андозаи `int` ва `uint` вобаста ба меъмории процессор аст
	fmt.Printf("Андозаи int: %d байт\n", unsafe.Sizeof(int(0)))
	fmt.Printf("Андозаи uint: %d байт\n", unsafe.Sizeof(uint(0)))

	// Андозаи навъҳои доимӣ доимӣ аст
	fmt.Printf("Андозаи int8: %d байт\n", unsafe.Sizeof(int8(0)))
	fmt.Printf("Андозаи float64: %d байт\n", unsafe.Sizeof(float64(0)))
}