В какой системе счисления число записано короче — и почему?
Заметил, что одно и то же число в двоичной системе занимает много знаков, а в шестнадцатеричной — мало. Например 255 = 11111111₂, но всего FF₁₆. Это правильно я понял, что чем больше основание, тем короче запись? И всегда ли так?
2 ответа
Да, ты понял верно: чем больше основание системы, тем меньше разрядов нужно для одного и того же числа. Логика простая — одна цифра в большей системе несёт больше информации.
В системе с основанием N одна цифра кодирует одно из N значений. У двоичной всего 2 варианта на разряд, у шестнадцатеричной — 16, поэтому ту же величину «упаковываешь» в меньшее число знаков.
255: в двоичной 8 знаков (11111111), в восьмеричной 3 (377), в десятичной 3 (255), в шестнадцатеричной 2 (FF). Чем выше основание — тем компактнее. Именно поэтому программисты любят hex: он короткий и при этом легко переводится в биты.
Строго говоря, число разрядов примерно равно log по основанию системы от числа. Чем больше основание — тем меньше логарифм, тем короче запись. Поэтому переход 2 → 16 сокращает длину примерно в 4 раза (потому что 16 = 2⁴).