Sobes.tech
Junior

Kiek baitų užima skaičiaus saugojimas?

sobes.tech AI

Atsakymas iš AI

Skaičiaus saugojimo dydis Go priklauso nuo jo tipo.

Duomenų tipas Dydis (baitai) Reikšmių diapazonas
int Priklauso nuo architektūros (32 arba 64 bitų) Priklauso nuo architektūros
uint Priklauso nuo architektūros (32 arba 64 bitų) Priklauso nuo architektūros
int8 1 -128 iki 127
uint8 1 0 iki 255
int16 2 -32768 iki 32767
uint16 2 0 iki 65535
int32 4 -2147483648 iki 2147483647
uint32 4 0 iki 4294967295
int64 8 -9223372036854775808 iki 9223372036854775807
uint64 8 0 iki 18446744073709551615
float32 4 Apie ±3.4e38
float64 8 Apie ±1.8e308
complex64 8 Du float32 reikšmės (reali ir įsivaizduojama dalys)
complex128 16 Dvi float64 reikšmės (reali ir įsivaizduojama dalys)
byte 1 Sinonimas uint8
rune 4 Sinonimas int32 (Unicode kodo taškas)

Pavyzdys, kaip nustatyti tipo dydį konkrečioje platformoje:

import (
	"fmt"
	"unsafe"
)

func main() {
	// `int` ir `uint` dydis priklauso nuo procesoriaus architektūros
	fmt.Printf("`int` dydis: %d baitų\n", unsafe.Sizeof(int(0)))
	fmt.Printf("`uint` dydis: %d baitų\n", unsafe.Sizeof(uint(0)))

	// Fiksuotų tipų dydžiai yra pastovūs
	fmt.Printf("`int8` dydis: %d baitų\n", unsafe.Sizeof(int8(0)))
	fmt.Printf("`float64` dydis: %d baitų\n", unsafe.Sizeof(float64(0)))
}