Sobes.tech
Junior

Quantos bytes ocupa armazenar um número?

sobes.tech IA

Resposta da IA

O tamanho de armazenamento de um número em Go depende do seu tipo.

Tipo de dado Tamanho (bytes) Intervalo de valores
int Depende da arquitetura (32 ou 64 bits) Depende da arquitetura
uint Depende da arquitetura (32 ou 64 bits) Depende da arquitetura
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 Aproximadamente ±3.4e38
float64 8 Aproximadamente ±1.8e308
complex64 8 Dois valores float32 (parte real e imaginária)
complex128 16 Dois valores float64 (parte real e imaginária)
byte 1 Sinónimo de uint8
rune 4 Sinónimo de int32 (ponto de código Unicode)

Exemplo de como determinar o tamanho de um tipo numa plataforma específica:

import (
	"fmt"
	"unsafe"
)

func main() {
	// O tamanho de int e uint depende da arquitetura do processador
	fmt.Printf("Tamanho de int: %d bytes\n", unsafe.Sizeof(int(0)))
	fmt.Printf("Tamanho de uint: %d bytes\n", unsafe.Sizeof(uint(0)))

	// Os tamanhos de tipos fixos são constantes
	fmt.Printf("Tamanho de int8: %d bytes\n", unsafe.Sizeof(int8(0)))
	fmt.Printf("Tamanho de float64: %d bytes\n", unsafe.Sizeof(float64(0)))
}