Junior
რამდენ ბაიტს იკავებს რიცხვის შენახვა?
sobes.tech AI
პასუხი AI-სგან
Go-ში რიცხვის შენახვის ზომა დამოკიდებულია მის ტიპზე.
| მონაცემთა ტიპი | ზომა (ბაიტი) | მნიშვნელობათა დიაპაზონი |
|---|---|---|
int |
არქიტექტურაზეა დამოკიდებული (32 ან 64 ბიტი) | არქიტექტურაზეა დამოკიდებული |
uint |
არქიტექტურაზეა დამოკიდებული (32 ან 64 ბიტი) | არქიტექტურაზეა დამოკიდებული |
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 ბაიტი\n", unsafe.Sizeof(int(0)))
fmt.Printf("`uint` ზომა: %d ბაიტი\n", unsafe.Sizeof(uint(0)))
// ფიქსირებული ტიპების ზომები მუდმივია
fmt.Printf("`int8` ზომა: %d ბაიტი\n", unsafe.Sizeof(int8(0)))
fmt.Printf("`float64` ზომა: %d ბაიტი\n", unsafe.Sizeof(float64(0)))
}