Junior
Wie viele Bytes benötigt die Speicherung einer Zahl?
sobes.tech KI
Antwort von AI
Die Speichergröße einer Zahl in Go hängt von ihrem Typ ab.
| Datentyp | Größe (Bytes) | Wertebereich |
|---|---|---|
int |
Hängt von der Architektur ab (32 oder 64 Bit) | Hängt von der Architektur ab |
uint |
Hängt von der Architektur ab (32 oder 64 Bit) | Hängt von der Architektur ab |
int8 |
1 | -128 bis 127 |
uint8 |
1 | 0 bis 255 |
int16 |
2 | -32768 bis 32767 |
uint16 |
2 | 0 bis 65535 |
int32 |
4 | -2147483648 bis 2147483647 |
uint32 |
4 | 0 bis 4294967295 |
int64 |
8 | -9223372036854775808 bis 9223372036854775807 |
uint64 |
8 | 0 bis 18446744073709551615 |
float32 |
4 | Ca. ±3.4e38 |
float64 |
8 | Ca. ±1.8e308 |
complex64 |
8 | Zwei float32 Werte (reeller und imaginärer Teil) |
complex128 |
16 | Zwei float64 Werte (reeller und imaginärer Teil) |
byte |
1 | Synonym für uint8 |
rune |
4 | Synonym für int32 (Unicode-Codepunkt) |
Beispiel, um die Größe eines Typs auf einer bestimmten Plattform zu bestimmen:
import (
"fmt"
"unsafe"
)
func main() {
// Die Größe von int und uint hängt von der Architektur des Prozessors ab
fmt.Printf("Größe von int: %d Bytes\n", unsafe.Sizeof(int(0)))
fmt.Printf("Größe von uint: %d Bytes\n", unsafe.Sizeof(uint(0)))
// Die Größen fester Typen sind konstant
fmt.Printf("Größe von int8: %d Bytes\n", unsafe.Sizeof(int8(0)))
fmt.Printf("Größe von float64: %d Bytes\n", unsafe.Sizeof(float64(0)))
}