Junior
Câți octeți ocupă stocarea unui număr?
sobes.tech AI
Răspuns de la AI
Dimensiunea de stocare a unui număr în Go depinde de tipul său.
| Tip de date | Dimensiune (octeți) | Interval de valori |
|---|---|---|
int |
Depinde de arhitectură (32 sau 64 de biți) | Depinde de arhitectură |
uint |
Depinde de arhitectură (32 sau 64 de biți) | Depinde de arhitectură |
int8 |
1 | -128 până la 127 |
uint8 |
1 | 0 până la 255 |
int16 |
2 | -32768 până la 32767 |
uint16 |
2 | 0 până la 65535 |
int32 |
4 | -2147483648 până la 2147483647 |
uint32 |
4 | 0 până la 4294967295 |
int64 |
8 | -9223372036854775808 până la 9223372036854775807 |
uint64 |
8 | 0 până la 18446744073709551615 |
float32 |
4 | Aproximativ ±3.4e38 |
float64 |
8 | Aproximativ ±1.8e308 |
complex64 |
8 | Două valori float32 (parte reală și imaginară) |
complex128 |
16 | Două valori float64 (parte reală și imaginară) |
byte |
1 | Sinonim pentru uint8 |
rune |
4 | Sinonim pentru int32 (punct de cod Unicode) |
Exemplu de determinare a dimensiunii unui tip pe o platformă specifică:
import (
"fmt"
"unsafe"
)
func main() {
// Dimensiunea lui `int` și `uint` depinde de arhitectura procesorului
fmt.Printf("Dimensiunea lui int: %d bytes\n", unsafe.Sizeof(int(0)))
fmt.Printf("Dimensiunea lui uint: %d bytes\n", unsafe.Sizeof(uint(0)))
// Dimensiunile tipurilor fixe sunt constante
fmt.Printf("Dimensiunea lui int8: %d bytes\n", unsafe.Sizeof(int8(0)))
fmt.Printf("Dimensiunea lui float64: %d bytes\n", unsafe.Sizeof(float64(0)))
}