Junior
Kui palju baitis on vaja numbri salvestamiseks?
sobes.tech AI
Vastus AI-lt
Go-s oleva arvu salvestamise suurus sõltub selle tüübist.
| Andmetüüp | Suurus (baitides) | Väärtuste vahemik |
|---|---|---|
int |
Sõltub arhitektuurist (32 või 64 bitti) | Sõltub arhitektuurist |
uint |
Sõltub arhitektuurist (32 või 64 bitti) | Sõltub arhitektuurist |
int8 |
1 | -128 kuni 127 |
uint8 |
1 | 0 kuni 255 |
int16 |
2 | -32768 kuni 32767 |
uint16 |
2 | 0 kuni 65535 |
int32 |
4 | -2147483648 kuni 2147483647 |
uint32 |
4 | 0 kuni 4294967295 |
int64 |
8 | -9223372036854775808 kuni 9223372036854775807 |
uint64 |
8 | 0 kuni 18446744073709551615 |
float32 |
4 | Ligikaudu ±3.4e38 |
float64 |
8 | Ligikaudu ±1.8e308 |
complex64 |
8 | Kaks float32 väärtust (reaalne ja kujuteldav osa) |
complex128 |
16 | Kaks float64 väärtust (reaalne ja kujuteldav osa) |
byte |
1 | Sünonüüm uint8-le |
rune |
4 | Sünonüüm int32-le (Unicode koodipunkt) |
Näide, kuidas määrata tüübi suurus konkreetsel platvormil:
import (
"fmt"
"unsafe"
)
func main() {
// `int` ja `uint` suurus sõltub protsessori arhitektuurist
fmt.Printf("`int` suurus: %d baiti\n", unsafe.Sizeof(int(0)))
fmt.Printf("`uint` suurus: %d baiti\n", unsafe.Sizeof(uint(0)))
// Püsitüüpide suurused on konstantne
fmt.Printf("`int8` suurus: %d baiti\n", unsafe.Sizeof(int8(0)))
fmt.Printf("`float64` suurus: %d baiti\n", unsafe.Sizeof(float64(0)))
}