Sobes.tech
Middle

Чаро Integer.MAX_VALUE плюс як равон Integer.MIN_VALUE аст?

sobes.tech AI

Ҷавоб аз AI

Маҳдуди арзиши Integer.MAX_VALUE — арзиши максималӣ барои навъи адади 32-битӣ бо имзо дар Java мебошад. Он баробар аст ба 2<sup>31</sup> - 1.

Намоянда дар хотира:

Integer.MAX_VALUE: 0111...1111 (31 адади 1)

Ҳангоми илова кардани як, аз ҳад зиёд мегузарад:

Integer.MAX_VALUE + 1:

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

Битҳои баландтарин ба 1 табдил меёбанд, ки дар намоиши бо имзо нишон медиҳад, ки рақами манфӣ аст. Барои иловагии ду (намуди стандартии нишон додани рақамҳои манфӣ дар Java), 1000...0000 ба хурдтарин рақами манфӣ, ки бо 32 бит нишон дода мешавад, мувофиқат мекунад, яъне Integer.MIN_VALUE (-2<sup>31</sup>).

Ин рафтор дар Java ва бисёри дигар забонҳое, ки иловагии дуро истифода мебаранд, стандартӣ мебошад.