Sobes.tech
Junior

Koľko bajtov zaberie uloženie čísla?

sobes.tech AI

Odpoveď od AI

Veľkosť ukladania čísla v Go závisí od jeho typu.

Typ údajov Veľkosť (bajty) Rozsah hodnôt
int Závisí od architektúry (32 alebo 64 bitov) Závisí od architektúry
uint Závisí od architektúry (32 alebo 64 bitov) Závisí od architektúry
int8 1 -128 do 127
uint8 1 0 do 255
int16 2 -32768 do 32767
uint16 2 0 do 65535
int32 4 -2147483648 do 2147483647
uint32 4 0 do 4294967295
int64 8 -9223372036854775808 do 9223372036854775807
uint64 8 0 do 18446744073709551615
float32 4 Približne ±3.4e38
float64 8 Približne ±1.8e308
complex64 8 Dve hodnoty float32 (reálna a imaginárna časť)
complex128 16 Dve hodnoty float64 (reálna a imaginárna časť)
byte 1 Synonymum pre uint8
rune 4 Synonymum pre int32 (Unicode kódový bod)

Príklad určenia veľkosti typu na konkrétnej platforme:

import (
	"fmt"
	"unsafe"
)

func main() {
	// Veľkosť `int` a `uint` závisí od architektúry procesora
	fmt.Printf("Veľkosť int: %d bajtov\n", unsafe.Sizeof(int(0)))
	fmt.Printf("Veľkosť uint: %d bajtov\n", unsafe.Sizeof(uint(0)))

	// Veľkosti pevných typov sú konštantné
	fmt.Printf("Veľkosť int8: %d bajtov\n", unsafe.Sizeof(int8(0)))
	fmt.Printf("Veľkosť float64: %d bajtov\n", unsafe.Sizeof(float64(0)))
}