Junior
Combien d'octets faut-il pour stocker un nombre?
sobes.tech IA
Réponse de l'IA
La taille de stockage d'un nombre en Go dépend de son type.
| Type de données | Taille (octets) | Plage de valeurs |
|---|---|---|
int |
Dépend de l'architecture (32 ou 64 bits) | Dépend de l'architecture |
uint |
Dépend de l'architecture (32 ou 64 bits) | Dépend de l'architecture |
int8 |
1 | -128 à 127 |
uint8 |
1 | 0 à 255 |
int16 |
2 | -32768 à 32767 |
uint16 |
2 | 0 à 65535 |
int32 |
4 | -2147483648 à 2147483647 |
uint32 |
4 | 0 à 4294967295 |
int64 |
8 | -9223372036854775808 à 9223372036854775807 |
uint64 |
8 | 0 à 18446744073709551615 |
float32 |
4 | Environ ±3.4e38 |
float64 |
8 | Environ ±1.8e308 |
complex64 |
8 | Deux valeurs float32 (partie réelle et imaginaire) |
complex128 |
16 | Deux valeurs float64 (partie réelle et imaginaire) |
byte |
1 | Synonyme de uint8 |
rune |
4 | Synonyme de int32 (point de code Unicode) |
Exemple pour déterminer la taille d'un type sur une plateforme spécifique:
import (
"fmt"
"unsafe"
)
func main() {
// La taille de int et uint dépend de l'architecture du processeur
fmt.Printf("Taille de int: %d octets\n", unsafe.Sizeof(int(0)))
fmt.Printf("Taille de uint: %d octets\n", unsafe.Sizeof(uint(0)))
// La taille des types fixes est constante
fmt.Printf("Taille de int8: %d octets\n", unsafe.Sizeof(int8(0)))
fmt.Printf("Taille de float64: %d octets\n", unsafe.Sizeof(float64(0)))
}