Int имеет максимальное значение 2^31 - 1, потому что int является псевдонимом для Int32
, который хранит 4 байта в памяти для представления значения.
Теперь давайте рассмотрим концепцию int.Max + 1
. Здесь вы должны знать о Signed number representations, который используется для хранения отрицательных значений. В представлении двоичного числа нет ничего подобного отрицательным числам, но они представлены дополнением дополнения и двумя битами дополнения.
Допустим, у моего int1 есть память объемом 1 байт, т.е. 8 бит. Таким образом, максимальное значение, которое вы можете сохранить в int1
, равно 2^8 -1 = 255
. Теперь давайте добавим 1 в эту ценностно
11111111
+ 00000000
----------
100000000
ваш выход 100000000 = (512) в десятичной системе, что выходит за пределы возможностей хранения int1 и что представляет собой отрицательное значение -256 в десятичной системе счисления (как первый бит показывает отрицательное значение).
Это причина добавления 1 к int.Max стать, int.Minimum. то есть.
`int.Maximum + 1 = int.Minimum`
Возможный дубликат [Что такое «Дополнение 2»?] (Http://stackoverflow.com/questions/1049722/what-is-2s-complement) –
@ColeJohnson Я не знал, что это было довольное дополнение 2 до тех пор, пока Теперь. – dxdydsdz
Ребята перестали ненавидеть Я всего лишь в 7 классе и пытаюсь узнать кое-что. ._. – dxdydsdz