Sobes.tech
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- ի և շատ այլ լեզուների համար, որոնք օգտագործում են երկու կոմպլեմենտային լրացում։