Junior
Koľko bajtov zaberie uloženie čísla?
sobes.tech AI
Odpoveď od AI
Veľkosť ukladania čísla v Go závisí od jeho typu.
| Typ údajov | Veľkosť (bajty) | Rozsah hodnôt |
|---|---|---|
int |
Závisí od architektúry (32 alebo 64 bitov) | Závisí od architektúry |
uint |
Závisí od architektúry (32 alebo 64 bitov) | Závisí od architektúry |
int8 |
1 | -128 do 127 |
uint8 |
1 | 0 do 255 |
int16 |
2 | -32768 do 32767 |
uint16 |
2 | 0 do 65535 |
int32 |
4 | -2147483648 do 2147483647 |
uint32 |
4 | 0 do 4294967295 |
int64 |
8 | -9223372036854775808 do 9223372036854775807 |
uint64 |
8 | 0 do 18446744073709551615 |
float32 |
4 | Približne ±3.4e38 |
float64 |
8 | Približne ±1.8e308 |
complex64 |
8 | Dve hodnoty float32 (reálna a imaginárna časť) |
complex128 |
16 | Dve hodnoty float64 (reálna a imaginárna časť) |
byte |
1 | Synonymum pre uint8 |
rune |
4 | Synonymum pre int32 (Unicode kódový bod) |
Príklad určenia veľkosti typu na konkrétnej platforme:
import (
"fmt"
"unsafe"
)
func main() {
// Veľkosť `int` a `uint` závisí od architektúry procesora
fmt.Printf("Veľkosť int: %d bajtov\n", unsafe.Sizeof(int(0)))
fmt.Printf("Veľkosť uint: %d bajtov\n", unsafe.Sizeof(uint(0)))
// Veľkosti pevných typov sú konštantné
fmt.Printf("Veľkosť int8: %d bajtov\n", unsafe.Sizeof(int8(0)))
fmt.Printf("Veľkosť float64: %d bajtov\n", unsafe.Sizeof(float64(0)))
}