Sobes.tech
Junior

Câți octeți ocupă stocarea unui număr?

sobes.tech AI

Răspuns de la AI

Dimensiunea de stocare a unui număr în Go depinde de tipul său.

Tip de date Dimensiune (octeți) Interval de valori
int Depinde de arhitectură (32 sau 64 de biți) Depinde de arhitectură
uint Depinde de arhitectură (32 sau 64 de biți) Depinde de arhitectură
int8 1 -128 până la 127
uint8 1 0 până la 255
int16 2 -32768 până la 32767
uint16 2 0 până la 65535
int32 4 -2147483648 până la 2147483647
uint32 4 0 până la 4294967295
int64 8 -9223372036854775808 până la 9223372036854775807
uint64 8 0 până la 18446744073709551615
float32 4 Aproximativ ±3.4e38
float64 8 Aproximativ ±1.8e308
complex64 8 Două valori float32 (parte reală și imaginară)
complex128 16 Două valori float64 (parte reală și imaginară)
byte 1 Sinonim pentru uint8
rune 4 Sinonim pentru int32 (punct de cod Unicode)

Exemplu de determinare a dimensiunii unui tip pe o platformă specifică:

import (
	"fmt"
	"unsafe"
)

func main() {
	// Dimensiunea lui `int` și `uint` depinde de arhitectura procesorului
	fmt.Printf("Dimensiunea lui int: %d bytes\n", unsafe.Sizeof(int(0)))
	fmt.Printf("Dimensiunea lui uint: %d bytes\n", unsafe.Sizeof(uint(0)))

	// Dimensiunile tipurilor fixe sunt constante
	fmt.Printf("Dimensiunea lui int8: %d bytes\n", unsafe.Sizeof(int8(0)))
	fmt.Printf("Dimensiunea lui float64: %d bytes\n", unsafe.Sizeof(float64(0)))
}