Представьте, что у нас есть красные и зелёные яблоки. Сколько различных последовательностей из трёх яблок можно составить? Ответ — 8. Это считается по формуле nᵏ, где n — количество вариантов (красное или зелёное, то есть 2), а k — длина последовательности. В итоге: 2³ = 8.
В комбинаторике это называется размещение с повторениями.
Бит — минимальная единица информации, он может принимать только два значения: 0 или 1, как наши яблоки. Следовательно, количество различных последовательностей из k бит равно 2ᵏ.
Байт — это 8 бит, а значит, он может хранить 2⁸ = 256 различных значений. Например:
01111011 = 123 (в десятичной системе)
Если нам нужно число больше 255, потребуется уже два байта.
Это же используется в кодировках.
Например в Windows-1251 каждому символу соответствует число от 0 до 255. Если вы когда-нибудь открывали в Блокноте "непонятный" файл и видели кракозябры — это потому, что программа просто читает каждый байт и подставляет к нему символ из своей кодировки.
Цвета в формате RGB тоже используют байты. Каждый пиксель — это три байта:
Объединяя их, получаем 10010000 10110010 11011101, что в шестнадцатеричной системе записывается как 90b2dd. Вот наглядный пример. На странице вы увидите цвет который соответствует коду 90b2dd и его разбивку по уровням RGB соответствующую числам из примера выше.
Интересный факт: байт не всегда был 8-битным. В ранних ЭВМ встречались байты размером 6, 7, 9, 32, а иногда даже 48 бит. Только в 70-х годах стандартом стали 8 бит.
Я завел телеграмм канал где рассказываю про программирование и IT и стараюсь делать это простым языком. Подпишитесь - ExceptionEx