Sobes.tech
Middle

Neden Integer.MAX_VALUE artı bir, Integer.MIN_VALUE'ye eşittir?

sobes.tech yapay zeka

AI'dan gelen yanıt

Integer.MAX_VALUE — Java'da 32 bit işaretli tam sayı türü için maksimum değerdir. 2<sup>31</sup> - 1'e eşittir.

Bellekte Temsili:

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

Bir eklediğinizde taşma olur:

Integer.MAX_VALUE + 1:

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

En yüksek bit bir olur, bu da işaretli temsilde negatif sayıya işaret eder. İki tamamlayıcı (Java'da negatif sayıların standart temsili) kullanıldığında, 1000...0000 en küçük negatif sayıya karşılık gelir, bu da 32 bit ile temsil edilebilen en küçük negatif sayı olan Integer.MIN_VALUE (-2<sup>31</sup>)'dir.

Bu davranış, Java'daki ve birçok diğer dildeki işaretli tam sayı türleri için standarttır ve ikili tamamlayıcı kullanır.