Junior
Ile bajtów zajmuje przechowywanie liczby?
sobes.tech AI
Odpowiedź od AI
Rozmiar przechowywania liczby w Go zależy od jej typu.
| Typ danych | Rozmiar (bajty) | Zakres wartości |
|---|---|---|
int |
Zależy od architektury (32 lub 64 bity) | Zależy od architektury |
uint |
Zależy od architektury (32 lub 64 bity) | Zależy od architektury |
int8 |
1 | -128 do 127 |
uint8 |
1 | 0 do 255 |
int16 |
2 | -32768 do 32767 |
uint16 |
2 | 0 do 65535 |
int32 |
4 | -2147483648 do 2147483647 |
uint32 |
4 | 0 do 4294967295 |
int64 |
8 | -9223372036854775808 do 9223372036854775807 |
uint64 |
8 | 0 do 18446744073709551615 |
float32 |
4 | Około ±3.4e38 |
float64 |
8 | Około ±1.8e308 |
complex64 |
8 | Dwie wartości float32 (część rzeczywista i urojona) |
complex128 |
16 | Dwie wartości float64 (część rzeczywista i urojona) |
byte |
1 | Synonim dla uint8 |
rune |
4 | Synonim dla int32 (punkt kodu Unicode) |
Przykład określenia rozmiaru typu na konkretnej platformie:
import (
"fmt"
"unsafe"
)
func main() {
// Rozmiar int i uint zależy od architektury procesora
fmt.Printf("Rozmiar int: %d bajtów\n", unsafe.Sizeof(int(0)))
fmt.Printf("Rozmiar uint: %d bajtów\n", unsafe.Sizeof(uint(0)))
// Rozmiary typów stałych są stałe
fmt.Printf("Rozmiar int8: %d bajtów\n", unsafe.Sizeof(int8(0)))
fmt.Printf("Rozmiar float64: %d bajtów\n", unsafe.Sizeof(float64(0)))
}