Junior
Mennyi bájt szükséges egy szám tárolásához?
sobes.tech MI
Válasz az MI-től
A szám tárolási mérete Go-ban a típusától függ.
| Adattípus | Méret (byte) | Értéktartomány |
|---|---|---|
int |
Aarchitektúrától függ (32 vagy 64 bit) | Aarchitektúrától függ |
uint |
Aarchitektúrától függ (32 vagy 64 bit) | Aarchitektúrától függ |
int8 |
1 | -128-tól 127-ig |
uint8 |
1 | 0-tól 255-ig |
int16 |
2 | -32768-tól 32767-ig |
uint16 |
2 | 0-tól 65535-ig |
int32 |
4 | -2147483648-tól 2147483647-ig |
uint32 |
4 | 0-tól 4294967295-ig |
int64 |
8 | -9223372036854775808-tól 9223372036854775807-ig |
uint64 |
8 | 0-tól 18446744073709551615-ig |
float32 |
4 | Körülbelül ±3.4e38 |
float64 |
8 | Körülbelül ±1.8e308 |
complex64 |
8 | Két float32 érték (valós és képzetes rész) |
complex128 |
16 | Két float64 érték (valós és képzetes rész) |
byte |
1 | Szinonima a uint8-hoz |
rune |
4 | Szinonima az int32-hez (Unicode kódpont) |
Példa a típus méretének meghatározására egy adott platformon:
import (
"fmt"
"unsafe"
)
func main() {
// Az `int` és `uint` mérete a processzor architektúrájától függ
fmt.Printf("Az int mérete: %d byte\n", unsafe.Sizeof(int(0)))
fmt.Printf("A uint mérete: %d byte\n", unsafe.Sizeof(uint(0)))
// A fix típusok mérete állandó
fmt.Printf("Az int8 mérete: %d byte\n", unsafe.Sizeof(int8(0)))
fmt.Printf("A float64 mérete: %d byte\n", unsafe.Sizeof(float64(0)))
}