Вы, вероятно, уже встречали эти слова. Биты и байты повсюду. Вы видите их, когда проверяете объем оперативной памяти (RAM). Вы видите их, когда смотрите на размер файлов. Рекламодатели тоже используют их. Они сообщают, что компьютер имеет 32-битный процессор. Они говорят, что у него 64 мегабайта памяти. Они могут упомянуть 2,1 гигабайта памяти.

Понимание этих терминов нужно не только техническим специалистам. Это помогает вам разобраться в том, что на самом деле делает ваш компьютер. Это руководство объясняет основы двоичных чисел. Оно показывает, почему мы используем биты и как они образуют байты.

Десятичные числа и разрядность

Чтобы понять биты, начните с чисел, которые вам уже знакомы. Цифры являются строительными блоками десятичной математики. Одна цифра принимает значение от 0 до 9. Мы группируем эти цифры, чтобы получить большие числа.

Возьмем 6357 в качестве примера. У него четыре цифры. 7 находится в разряде единиц. 5 — в разряде десятков. 3 — в разряде сотен. 6 — в разряде тысяч. Вы можете записать это математически.

(6 * 1000) + (3 * 100) + (5 * 10) + (7 * 1) = 6357

Вы также можете использовать степени числа 10. Символ ^ означает «возведение в степень». Таким образом, 10 в квадрате — это 10^2. Формула принимает вид:

(6 * 10^3) + (3 * 10^2) + (5 * 10^1) + (7 * 10^0) = 6357

Каждая цифра является разрядом. Она представляет следующую более высокую степень числа 10. Мы начинаем со степени 10, равной нулю.

Это кажется нормальным. Мы используем десятичную систему каждый день. Вероятно, это произошло потому, что у людей десять пальцев. Если бы у нас было восемь пальцев, мы могли бы использовать восьмеричную систему. Вы можете построить системы счисления с любым основанием. Просто так компьютеры используют другую. Они используют двоичную систему счисления. Она также называется двоичной (основание 2).

Система с основанием 2 и 8-битный байт

Компьютеры используют основание 2. Его легче реализовать с помощью современных технологий. Компьютер с основанием 10 был бы чрезвычайно дорогим. Компьютер с основанием 2 относительно дешев. Вот почему двоичная система правит в цифровом мире.

Двоичная система использует двоичные цифры. Они называются битами. Слово происходит от «Binary digIT» (двоичная цифра). В отличие от десятичных цифр, биты имеют только два значения. Они могут быть 0 или 1. Двоичное число выглядит так: 1011.

Как его прочитать? Вы используете ту же логику, что и в десятичной математике. Просто замените основание 10 на основание 2.

(1 * 2^3) + (0 * 2^2) + (1 * 2^1) + (1 * 2^0) = 8 + 0 + 2 + 1 = 11

Двоичное число 1011 равно 11 в десятичной системе. Каждый бит принимает значение, которое увеличивается по степеням двойки. Счет в двоичной системе прост. Вот как выглядят первые несколько чисел.

0 = 0
1 = 1
2 = 10
3 = 11
4 = 100
5 = 101
6 = 110
7 = 111
8 = 1000
9 = 1001
10 = 1010
11 = 1011
12 = 1100
13 = 1101
14 = 1110
15 = 1111
16 = 10000
17 = 10001
18 = 10010
19 = 10011
20 = 10100

Обратите внимание на перенос разряда. При числе 2 в двоичной системе перенос происходит впервые. Если бит равен 1 и вы прибавляете 1, он становится 0. Следующий бит становится 1. Прыжок от 15 к 16 показывает это наглядно. Четыре бита переполняются, переходя от 1111 к 10000.

Биты редко работают поодиночке. Компьютеры группируют их в наборы. Эти наборы называются байтами. Стандартный байт состоит из 8 бит.

Почему 8 бит? Это все равно что спросить, почему в дюжине 12 яиц. Не было строгой математической причины. Люди со временем остановились на 8 битах. Это оказалось достаточно удобным.

С помощью 8 бит можно представить 256 различных значений. Они варьируются от 0 до 255.

0 = 00000000
1 = 00000001
2 = 00000010

254 = 11111110
255 = 11111111

Эта система масштабируется очень быстро. CD-диски используют 2 байта на выборку. Это 16 бит. Диапазон изменяется от 0 до 65 535.

0 = 0000000000000000
1 = 0000000000000001
2 = 0000000000000010

65534 = 1111111111111110
65535 = 1111111111111111

Байты используются множеством

Как на самом деле хранится ваш текст в ASCII

Ваш компьютер не хранит буквы. Он хранит числа.

Когда вы печатаете документ, приложение преобразует нажатия клавиш в определенный код. Стандартом для этого преобразования является набор символов ASCII. В этой системе каждое бинарное значение от 0 до 127 соответствует одному символу. Хотя современные системы часто расширяют этот набор до 256 символов для поддержки букв с диакритическими знаками и специальных символов, базовые 128 остаются фундаментом.

Рассмотрим простой текстовый файл, созданный в Блокноте Windows. Если вы наберете фразу «Four score and seven years ago», программа выделит ровно один байт памяти для каждого символа. Это включает в себя пробелы между словами.

Попробуйте сами. Создайте файл с именем getty.txt, содержащий это предложение. Сохраните его. Проверьте размер файла. Вы увидите, что он составляет ровно 30 байт. Добавьте слово. Размер сразу увеличивается. Это линейная зависимость. Каждый символ занимает один байт.

Если вы откроете этот файл в шестнадцатеричном редакторе, вы не увидите «Four score». Вы увидите поток десятичных чисел:

70 111 117 114 32 97 110 100 32 115 101 118 101 110

Посмотрите эти значения в таблице ASCII. Вы обнаружите прямое взаимно-однозначное соответствие. Число 32 представляет собой пробел. Число 70 представляет собой «F». Если быть технически точным, эти десятичные числа преобразуются в двоичные. 32 становится 00100000. Именно это и обрабатывает аппаратное обеспечение.

Первые 32 кода (0–31) — это непечатаемые управляющие символы. Они управляют такими вещами, как возврат каретки и перевод строки. Символ пробела следует за ними под кодом 32. Затем идут знаки препинания, цифры, заглавные буквы и строчные буквы.

Понимание приставок байтов и двоичной математики

Когда вы имеете дело с более чем несколькими байтами, вам нужна шкала масштабирования. Мы используем приставки, такие как кило, мега и гига.

Это не метрические приставки. Это степени двойки.

  • Кило (K): 2^10 = 1 024 байта
  • Мега (M): 2^20 = 1 048 576 байт
  • Гига (G): 2^30 = 1 073 741 824 байта
  • Тера (T): 2^40 = 1 099 511 627 776 байт

Более высокие порядки, такие как пета, экса, зетта и йотта, продолжают эту закономерность. Терабайтная база данных распространена в корпоративной среде. База данных петабайтного масштаба, вероятно, существует в государственной инфраструктуре.

Когда кто-то говорит, что жесткий диск имеет объем 2 гигабайта, он имеет в виду ровно 2 147 483 648 байт. Грубо говоря. Но достаточно близко для маркетинга. Чтобы заполнить 2 ГБ, вам понадобится всего три стандартных компакт-диска по 650 МБ.

Двоичная математика зеркально отражает десятичную математику. Правила идентичны. Вы складываете справа налево. Вы переносите разряд, когда превышаете предел. Единственное различие — в самом пределе. В десятичной системе предел — это 9. В двоичной системе предел — это 1.

Возьмем задачу на сложение в десятичной системе: 452 + 751.
Начинаем справа. 2 + 1 = 3.
Следующий разряд. 5 + 5 = 10. Записываем 0, переносим 1.
Следующий. 4 + 7 + 1 (перенос) = 12. Записываем 2, переносим 1.
Итог. 0 + 0 + 1 (перенос) = 1.
Результат: 1203.

Двоичное сложение следует той же логике.
010
+ 111


1001

Правый разряд: 0 + 1 = 1.
Второй разряд: 1 + 1 = 10. Записываем 0, переносим 1.
Третий разряд: 0 + 1 + 1 (перенос) = 10. Записываем 0, переносим 1.
Итоговый разряд: 0 + 0 + 1 (перенос) = 1.
Результат: 1001.

Переведем обратно в десятичную систему. 2 + 7 = 9. Математика верна.

Биты — это двоичные цифры. Они могут принимать значения 0 или 1. Байты — это группы из восьми битов. Двоичная математика — это просто десятичная математика с более жестким ограничением.

Это так просто. Или по крайней мере, так преподносят это в учебниках. Реальность того, как эти данные перемещаются через кремний, как они деградируют и как мы их интерпретируем, гораздо сложнее. Но фундамент остается двоичным. Ноль или единица. Ничего другого.