Junior
Hoeveel bytes neemt het opslaan van een getal in beslag?
sobes.tech AI
Antwoord van AI
De opslaggrootte van een getal in Go hangt af van het type.
| Gegevenstype | Grootte (bytes) | Waardenbereik |
|---|---|---|
int |
Afhankelijk van de architectuur (32 of 64 bits) | Afhankelijk van de architectuur |
uint |
Afhankelijk van de architectuur (32 of 64 bits) | Afhankelijk van de architectuur |
int8 |
1 | -128 tot 127 |
uint8 |
1 | 0 tot 255 |
int16 |
2 | -32768 tot 32767 |
uint16 |
2 | 0 tot 65535 |
int32 |
4 | -2147483648 tot 2147483647 |
uint32 |
4 | 0 tot 4294967295 |
int64 |
8 | -9223372036854775808 tot 9223372036854775807 |
uint64 |
8 | 0 tot 18446744073709551615 |
float32 |
4 | Ongeveer ±3.4e38 |
float64 |
8 | Ongeveer ±1.8e308 |
complex64 |
8 | Twee float32 waarden (reële en imaginaire delen) |
complex128 |
16 | Twee float64 waarden (reële en imaginaire delen) |
byte |
1 | Synoniem voor uint8 |
rune |
4 | Synoniem voor int32 (Unicode codepunt) |
Voorbeeld van het bepalen van de grootte van een type op een specifiek platform:
import (
"fmt"
"unsafe"
)
func main() {
// De grootte van `int` en `uint` hangt af van de architectuur van de processor
fmt.Printf("Grootte van int: %d bytes\n", unsafe.Sizeof(int(0)))
fmt.Printf("Grootte van uint: %d bytes\n", unsafe.Sizeof(uint(0)))
// De groottes van vaste types zijn constant
fmt.Printf("Grootte van int8: %d bytes\n", unsafe.Sizeof(int8(0)))
fmt.Printf("Grootte van float64: %d bytes\n", unsafe.Sizeof(float64(0)))
}