Для любого, кто изучает двоичный код, возникает некоторая путаница, которая сбивает с толку большинство людей, включая меня в прошлом. Обратите внимание на следующее. Вы хотите узнать наибольшее беззнаковое число, которое может поместиться в байт. Итак, вы подумаете:

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

Это так просто.

Вычислить наибольшее количество чисел со знаком немного по-другому. Я расскажу об этом в другой статье.