Junior
Колико бајтова је потребно за чување броја?
sobes.tech АИ
Одговор од АИ
Veličina skladištenja broja u Go zavisi od njegovog tipa.
| Tip podatka | Veličina (bajtovi) | Opseg vrednosti |
|---|---|---|
int |
Zavisi od arhitekture (32 ili 64 bita) | Zavisi od arhitekture |
uint |
Zavisi od arhitekture (32 ili 64 bita) | Zavisi od arhitekture |
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 | Otprilike ±3.4e38 |
float64 |
8 | Otprilike ±1.8e308 |
complex64 |
8 | Dve vrednosti float32 (realni i imaginarnu deo) |
complex128 |
16 | Dve vrednosti float64 (realni i imaginarnu deo) |
byte |
1 | Sinonim za uint8 |
rune |
4 | Sinonim za int32 (Unicode kod tačka) |
Primer određivanja veličine tipa na specifičnoj platformi:
import (
"fmt"
"unsafe"
)
func main() {
// Veličina `int` i `uint` zavisi od arhitekture procesora
fmt.Printf("Veličina int: %d bajta\n", unsafe.Sizeof(int(0)))
fmt.Printf("Veličina uint: %d bajta\n", unsafe.Sizeof(uint(0)))
// Veličine fiksnih tipova su konstantne
fmt.Printf("Veličina int8: %d bajta\n", unsafe.Sizeof(int8(0)))
fmt.Printf("Veličina float64: %d bajta\n", unsafe.Sizeof(float64(0)))
}