Sobes.tech
Middle

Niyə Integer.MAX_VALUE artı bir Integer.MIN_VALUE-ə bərabərdir?

sobes.tech Süni İntellekt

AI-dan cavab

Integer.MAX_VALUE — Java-da 32-bitlik imzoli tam sayı tipi üçün maksimum dəyərdir. Bu, 2<sup>31</sup> - 1-ə bərabərdir.

Yaddaşdakı təmsil:

Integer.MAX_VALUE: 0111...1111 (31 bir)

Bir əlavə etdikdə, daşma baş verir:

Integer.MAX_VALUE + 1:

  0111...1111
+ 0000...0001
------------
  1000...0000

Ən yüksək bit 1 olur, bu da işarəli təmsildə mənfi ədədi göstərir. İki tamamlayıcı (Java-da mənfi ədədlərin standart təmsili) üçün, 1000...0000 32 bit ilə təmsil oluna bilən ən kiçik mənfi ədədi, yəni Integer.MIN_VALUE (-2<sup>31</sup>)-dir.

Bu davranış Java və çox sayda digər dildə iki tamamlayıcı istifadə edilərək, işarəli tam ədədlər üçün standartdır.