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.