Middle
Miks Integer.MAX_VALUE pluss üks on võrdne Integer.MIN_VALUE-ga?
sobes.tech AI
Vastus AI-lt
Integer.MAX_VALUE — on maksimaalne väärtus 32-bitisel märgitud täisarvul Java-s. See on võrdne 2<sup>31</sup> - 1-ga.
Mälu esitus:
Integer.MAX_VALUE: 0111...1111 (31 ühte)
Kui lisada üks, toimub ülevoog:
Integer.MAX_VALUE + 1:
0111...1111
+ 0000...0001
------------
1000...0000
Kõige olulisem bitt muutub üheks, mis märgib märgitud esitusviisis negatiivset arvu. Kahe täiendamise (Java-s standardne negatiivsete arvude esitusviis) korral vastab 1000...0000 kõige väiksemale negatiivsele arvule, mida saab 32-bitiga esitada, ehk Integer.MIN_VALUE (-2<sup>31</sup>).
See käitumine on standardne Java ja paljude teiste keelte jaoks, mis kasutavad kahe täiendamise süsteemi.