Senior
// 3-savol. ekraningizda nima chiqariladi package main import "fmt" import "math" func main() { i := int32(math.Pow(2, 64)) - 1 fmt.Println(i) }
sobes.tech AI
AIdan javob
Ushbu kodda math.Pow(2, 64) hisoblanadi, bu float64 turidagi 2 ning 64-darajasi bo'lgan sonni qaytaradi. Keyin bu qiymat int32 turiga o'tkaziladi va 1 ga kamaytiriladi.
Ammo:
math.Pow(2, 64)18446744073709551616 ga teng, bu int32 ga sig'maydi (maksimal qiymat taxminan 2,1e9).- float64 dan int32 ga o'tkazish yuki va 2^32 moduli bo'yicha kesiladi.
Natijada, int32(math.Pow(2, 64)) 0 ga teng bo'ladi, chunki 2^64 moduli 2^32 ga teng 0.
Shu sababli, i := int32(math.Pow(2, 64)) - 1:
0 - 1 = -1
Ekranda quyidagicha ko'rinadi:
-1