Sobes.tech
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)))
}