Sobes.tech
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)))
}