Junior
¿Cuántos bytes ocupa almacenar un número?
sobes.tech AI
Respuesta de la IA
El tamaño de almacenamiento de un número en Go depende de su tipo.
| Tipo de dato | Tamaño (bytes) | Rango de valores |
|---|---|---|
int |
Depende de la arquitectura (32 o 64 bits) | Depende de la arquitectura |
uint |
Depende de la arquitectura (32 o 64 bits) | Depende de la arquitectura |
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 | Dos valores float32 (parte real e imaginaria) |
complex128 |
16 | Dos valores float64 (parte real e imaginaria) |
byte |
1 | Sinónimo de uint8 |
rune |
4 | Sinónimo de int32 (punto de código Unicode) |
Ejemplo de cómo determinar el tamaño de un tipo en una plataforma específica:
import (
"fmt"
"unsafe"
)
func main() {
// El tamaño de int y uint depende de la arquitectura del procesador
fmt.Printf("Tamaño de int: %d bytes\n", unsafe.Sizeof(int(0)))
fmt.Printf("Tamaño de uint: %d bytes\n", unsafe.Sizeof(uint(0)))
// Los tamaños de tipos fijos son constantes
fmt.Printf("Tamaño de int8: %d bytes\n", unsafe.Sizeof(int8(0)))
fmt.Printf("Tamaño de float64: %d bytes\n", unsafe.Sizeof(float64(0)))
}