Middle
Ինչու Integer.MAX_VALUE գումարած մեկը հավասար է Integer.MIN_VALUE- ին?
sobes.tech AI
Պատասխան AI-ից
Integer.MAX_VALUE — դա Java-յում 32-բիթանոց նշանավոր ամբողջ թվի առավելագույն արժեքն է։ Այն հավասար է 2<sup>31</sup> - 1-ին:
Հիշողության մեջ ներկայացում:
Integer.MAX_VALUE: 0111...1111 (31 միավոր)
Երբ ավելացնում եք մեկ, տեղի է ունենում գերբեռնվածություն:
Integer.MAX_VALUE + 1:
0111...1111
+ 0000...0001
------------
1000...0000
Ամենամեծ բիթը դառնում է 1, ինչը նշում է բացասական թիվ նշանավոր ներկայացումում։ Երկու կոմպլեմենտային լրացումի (Java- ում բացասական թվերի ստանդարտ ներկայացում) համար, 1000...0000 համապատասխանում է ամենափոքր բացասական թվին, որը կարող է ներկայացվել 32 բիտով, այսինքն՝ Integer.MIN_VALUE (-2<sup>31</sup>)։
Այս վարքագիծը ստանդարտ է Java- ի և շատ այլ լեզուների համար, որոնք օգտագործում են երկու կոմպլեմենտային լրացում։