Для любого, кто изучает двоичный код, возникает некоторая путаница, которая сбивает с толку большинство людей, включая меня в прошлом. Обратите внимание на следующее. Вы хотите узнать наибольшее беззнаковое число, которое может поместиться в байт. Итак, вы подумаете:
2^8 = 256
Это 256
ты говоришь! Неправильный. Это 255
.
Давайте проверим это с помощью элементарной математики. Наибольшее значение, которое может уместиться в 8 бит (1 байт): 11111111
… выполните сложение:
128 + 64 + 32 + 16 + 8 + 4 + 2 + 1 = 255
Чего ждать?! Так почему же 2^8 = 256
? Потому что вы забываете 0
. Ответ на 2^8
в основном гласит: 1 байт может содержать 256 возможных комбинаций битов .0
также является числом!
Чтобы вычислить наибольшее число со знаком, которое может уместиться в n
байтов, просто вычтите 1 из результата. Давайте вычислим наибольшее число, которое может уместиться в 4 байта (32 бита):
2^32-1 = 4294967295
Это так просто.
Вычислить наибольшее количество чисел со знаком немного по-другому. Я расскажу об этом в другой статье.