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)))
}