Sobes.tech
Junior

Quanti byte occupa la memorizzazione di un numero?

sobes.tech AI

Risposta dell'AI

La dimensione di memoria di un numero in Go dipende dal suo tipo.

Tipo di dato Dimensione (byte) Intervallo di valori
int Dipende dall'architettura (32 o 64 bit) Dipende dall'architettura
uint Dipende dall'architettura (32 o 64 bit) Dipende dall'architettura
int8 1 -128 a 127
uint8 1 0 a 255
int16 2 -32768 a 32767
uint16 2 0 a 65535
int32 4 -2147483648 a 2147483647
uint32 4 0 a 4294967295
int64 8 -9223372036854775808 a 9223372036854775807
uint64 8 0 a 18446744073709551615
float32 4 Circa ±3.4e38
float64 8 Circa ±1.8e308
complex64 8 Due valori float32 (parte reale e immaginaria)
complex128 16 Due valori float64 (parte reale e immaginaria)
byte 1 Sinonimo di uint8
rune 4 Sinonimo di int32 (punto di codice Unicode)

Esempio di come determinare la dimensione di un tipo su una piattaforma specifica:

import (
	"fmt"
	"unsafe"
)

func main() {
	// La dimensione di int e uint dipende dall'architettura del processore
	fmt.Printf("Dimensione di int: %d byte\n", unsafe.Sizeof(int(0)))
	fmt.Printf("Dimensione di uint: %d byte\n", unsafe.Sizeof(uint(0)))

	// Le dimensioni dei tipi fissi sono costanti
	fmt.Printf("Dimensione di int8: %d byte\n", unsafe.Sizeof(int8(0)))
	fmt.Printf("Dimensione di float64: %d byte\n", unsafe.Sizeof(float64(0)))
}