Sobes.tech
Junior

Πόσα byte χρειάζονται για την αποθήκευση ενός αριθμού;

sobes.tech AI

Απάντηση από AI

Το μέγεθος αποθήκευσης ενός αριθμού στο Go εξαρτάται από τον τύπο του.

Τύπος δεδομένων Μέγεθος (bytes) Φάσμα τιμών
int Εξαρτάται από την αρχιτεκτονική (32 ή 64 bits) Εξαρτάται από την αρχιτεκτονική
uint Εξαρτάται από την αρχιτεκτονική (32 ή 64 bits) Εξαρτάται από την αρχιτεκτονική
int8 1 -128 έως 127
uint8 1 0 έως 255
int16 2 -32768 έως 32767
uint16 2 0 έως 65535
int32 4 -2147483648 έως 2147483647
uint32 4 0 έως 4294967295
int64 8 -9223372036854775808 έως 9223372036854775807
uint64 8 0 έως 18446744073709551615
float32 4 Περίπου ±3.4e38
float64 8 Περίπου ±1.8e308
complex64 8 Δύο τιμές float32 (πραγματικό και φανταστικό μέρος)
complex128 16 Δύο τιμές float64 (πραγματικό και φανταστικό μέρος)
byte 1 Συνώνυμο του uint8
rune 4 Συνώνυμο του int32 (σημείο κώδικα Unicode)

Παράδειγμα για τον προσδιορισμό του μεγέθους ενός τύπου σε μια συγκεκριμένη πλατφόρμα:

import (
	"fmt"
	"unsafe"
)

func main() {
	// Το μέγεθος του `int` και `uint` εξαρτάται από την αρχιτεκτονική του επεξεργαστή
	fmt.Printf("Μέγεθος του int: %d bytes\n", unsafe.Sizeof(int(0)))
	fmt.Printf("Μέγεθος του uint: %d bytes\n", unsafe.Sizeof(uint(0)))

	// Τα μεγέθη των σταθερών τύπων είναι σταθερά
	fmt.Printf("Μέγεθος του int8: %d bytes\n", unsafe.Sizeof(int8(0)))
	fmt.Printf("Μέγεθος του float64: %d bytes\n", unsafe.Sizeof(float64(0)))
}