Код
#статьи

Бит и байт: гайд по единицам измерения информации

Заглядываем в память компьютера и изучаем двоичный код.

Иллюстрация: kjpargeter / freepik / Freepik / Mysid / Wikimedia Commons / Google Deepmind / Eugene Chystiakov / Anton Maksimov / Unsplash / Дима Руденок для Skillbox Media

Бит — это базовая единица измерения информации. С его помощью мы оцениваем скорость интернета и понимаем, хватит ли объёма облачного хранилища для фотографий из отпуска. Но что же такое биты и как процессор их обрабатывает? В этой статье учимся понимать двоичный код и разбираемся с устройством компьютера.

Эксперт

Андрей Камардин

Ведущий системный инженер в «Ростелекоме». Преподаёт в МАИ.

Эксперт Skillbox по администрированию Windows и работе с PowerShell.

Содержание

Что такое бит и байт

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

Байт — это 8 битов, объединённые в группу для удобства учёта. Например, в слове Hello на картинке ниже каждый байт отвечает за один символ. Количество возможных комбинаций 0 и 1 в одном байте равно 256.

Слово Hello, записанное двоичным кодом
Скриншот: Dupli Checker / Skillbox Media

Двоичный код — последовательность битов, в виде которой записывается любая хранящаяся на компьютере информация. Такая вереница из нулей и единиц — единственный язык, который способы понимать цифровые устройства.

Когда компьютер обрабатывает данные, в его электронных цепях меняются значения напряжения, которые обозначают 0 и 1. Сами цепи состоят из миллиардов транзисторов, которые могут открываться и закрываться, преграждая путь импульсу или, наоборот, пропуская его.

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

Впервые использовать электронные реле и переключатели для выполнения логических операций предложил американский учёный Клод Шеннон. Мы подробно рассказывали о его жизни и открытиях в нашей статье-биографии.

Как компьютер понимает двоичный код

Чтобы разобраться, как компьютер понимает и выполняет двоичный код, устроим небольшой экскурс в механику работы компьютера.

Современные вычислительные устройства работают на транзисторах — полупроводниках, которые с помощью небольшого входного сигнала управляют током во всей цепи. Транзисторы похожи на небольшие переключатели, которые могут находиться в двух состояниях: пропускать ток (1) или нет (0). По сути, это и есть бит в компьютерном представлении.

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

Чтобы стало яснее, давайте разберём всю эту компьютерную магию на примере. Допустим, мы решили открыть PowerPoint и внести пару изменений в презентацию. Вот как этот запрос будет обрабатывать компьютер.

  • Операционная система преобразует команду от пользователя в набор инструкций для процессора.
  • Инструкции пишутся на языке ассемблера — это такая программная прослойка между кодом, понятным человеку, и машинным кодом.
  • Специальный дешифратор внутри процессора преобразует инструкции в сигналы управления транзисторами.
  • Согласно этим сигналам, транзисторы будут включаться и выключаться практически со скоростью света — и уже через мгновение на экране загорится заветная картинка :)

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

Какие устройства работают с битами и байтами

Абсолютно все цифровые устройства оперируют битами и байтами. Исторически сложилось так, что для работы логики тех же компьютеров не получилось использовать ничего лучше двоичной системы. Это связано с особенностями электроники в прошлом. Тогда самыми стабильными сигналами в электрических цепях были отсутствие импульса (0) и его наличие (1).

Были попытки создать троичную систему, но промежуточные значения между 0 и 1 показали себя нестабильно и затея рухнула. Однако сегодня эксперты некоторых стран, в том числе России, говорят о возрождении этой идеи, так как с нынешними технологиями реализовать троичную систему вполне реально.

Для чего нужны бит и байт

Любая информация в компьютере представляет собой поток нулей и единиц. Скомпилированный код программы, любимый фильм, лайки в социальных сетях и даже деньги на банковском счёте — всё это множество битов.

Даже изображение на экран выводится благодаря двоичным единицам измерения информации. Мы знаем, что дисплей монитора состоит из точек — пикселей. Для того чтобы собрать из пикселей интерфейс операционной системы, видеокарта компьютера должна отправить монитору информацию о том, какого цвета должна быть каждая точка на экране монитора. Если цвет каждого пикселя будет описывать только один бит, то такой экран будет «монохромным» — состоять из светящихся и тёмных точек, как на компьютерах в далёком прошлом.

Современные мониторы и видеокарты поддерживают описание цвета каждой точки с помощью 32 бит, с их помощью можно передать больше цветов, чем способен различить человеческий глаз.

Матрица пикселей ЖК-монитора под увеличением
Изображение: Kprateek88 / Wikimedia Commons

А вот, например, в интернете для кодирования цвета на веб-страницах используется по 3 байта: по одному на красный, зелёный и синий свет. Как мы отметили ранее, один байт может принимать 256 различных значений — а значит, с помощью 3 байт можно закодировать более 16 миллионов цветов.

Другие единицы измерения информации

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

🤓Минутка душноты

Мы привыкли использовать в речи десятичные формы единиц измерения информации — килобайты, мегабайты и гигабайты. С точки зрения информатики это не совсем корректно.

Значения килобайтов, мегабайтов и гигабайтов кратны десяти, что удобно для людей. Компьютеры же проводят расчёты в двоичной системе и используют для этого двоичные единицы измерения — кибибайты и мебибайты. Они кратны степени двойки, а в их названии содержится часть «би» — как раз эта часть и указывает на двоичную природу числа. На деле мы уже много лет игнорируем это правило и приписываем объём двоичных единиц десятичным.

Этим любят пользоваться производители накопителей, указывая на упаковке объём в гигабайтах или терабайтах, то есть в десятичной системе счисления. Но компьютер всё равно считает в двоичной, и, по его мнению, объём вашего нового терабайтного жёсткого диска не 1024 ГБ, а 931 ГиБ.

Таблица единиц измерения с двоичным и десятичными приставками
Скриншот: Wikipedia / Skillbox Media

Килобайты и кибибайты

Кибибайты, КиБ — это 1024 байта. Почему значение не «круглое», как у других единиц измерения? Дело в том, что компьютер проводит расчёты в двоичной системе. Поэтому ему просто «удобнее» выделять в своей памяти пространство, кратное степени двойки.

В обычной жизни мы чаще используем термин «килобайты» — это десятичная единица измерения, в которой содержится ровно 1000 байт. Мы это делаем для удобства расчётов, однако для компьютера такой единицы измерения не существует — ему подавай «пакеты» по 1024 байта.

Таблица натуральных степеней небольших чисел
Скриншот: Wikipedia / Skillbox Media

Мегабайт и мебибайт

Мебибайт, МиБ — это 1024 кибибайта. Сегодня обычная фотография, сделанная на смартфон, может весить 15–30 МиБ. Снимки с большим разрешением и обилием мелких деталей уже переваливают за сотню мебибайт.

Мегабайты — десятичная единица измерения. Обычно в речи мы используем мегабайты, но под ним имеем в виду мебибайты.

Гигабайт и гибибайт

Гибибайт, ГиБ — это 1024 мебибайта. Если попробовать записать это число в байтах, то получится 1 073 741 824 байта. Глядя на это число, понимаешь, зачем придумали другие единицы измерения информации. Современный полуторачасовой фильм в высоком качестве может весить пару десятков гибибайт, а компьютерные игры — несколько сотен.

Гигабайты — это тоже десятичная единица измерения. В одном гигабайте содержится 1000 мегабайт, а в одном гибибайте — 1024 мебибайта.

Терабайт и Тебибайт

Тебибайт, ТиБ — это 1024 ГБ. Сейчас тебибайтные жёсткие диски и SSD считаются стандартом для установки в ноутбуки и домашние компьютеры, а ведь не так давно это было экзотикой. До 2010-х операционная система со всеми нужными программами и десятком игр занимала чуть больше половины пространства 320-гибибайтового жёсткого диска.

Килобиты, мегабиты и прочие «сетевые» биты

Когда вы подключали себе домашний интернет и выбирали скорость соединения, то наверняка встречали такие понятия, как килобит и мегабит. Пользователи частенько путают эти обозначения с килобайтами и мегабайтами из-за схожести слов. Исторически так повелось, что в сетевой инфраструктуре, на уровне «железа» учёт количества переданной и полученной информации ведётся не в байтах, а в битах.

Здесь в степень возводится именно количество бит. Как известно, 1 килобайт равен 8 килобитам. Поэтому, если вы выбираете себе тариф у провайдера и хотите понять, с какой скоростью будут скачиваться файлы, просто разделите заявленную пропускную способность на 8. К примеру, если у вас по тарифу скорость соединения 300 Мбит/с, значит, 300 / 8 = 37,5 МБ/с — именно с такой скоростью будут скачиваться данные в браузере, Steam или Torrent-клиенте.

Как переводить единицы измерения

Когда дело касается перевода одной единицы измерения в другую, работают правила, схожие с геометрией, когда нужно узнать, сколько сантиметров в метре. Допустим, мы хотим узнать, сколько бит в 100 КиБ. Для этого нужно сначала перевести кибибайты в байты, и только после этого в биты:

  • В одном кибибайте 1024 байта. Соответственно, 100 КиБ — это 100 × 1024 = 102 400 байт.
  • В одном байте 8 бит. Значит, 102 400 байт — это 102 400 × 8 = 819 200 бит.

Целиком выражение выглядит так: 100 × 1024 × 8 = 819 200 бит.

Когда нужно перевести меньшую единицу измерения в большую, нужно уже не умножать, а делить. Например, у нас есть 8 192 000 бит, которые нужно перевести в кибибайты. Сначала переводим в байты, затем в кибибайты:

  • В байте 8 бит, значит, 8 192 000 бит — это 8 192 000 / 8 = 1 024 000 байт.
  • В кибибайте 1024 байта, тогда 1 024 000 байт — это 1 024 000 / 1024 = 1000 КиБ.

Если одной строкой, то выражение выглядит так: 8 192 000 / 8 / 1024 = 1000 КиБ.

Если значение количества информации записано в двоичной системе счисления, сначала нужно перевести его в форму десятичного числа, и только после этого производить расчёты. Запомним, что количество цифр после единицы совпадает с максимальной степенью числа 2. Например:

  • 1000 — три цифры после единицы, значит, это 1 × 23, или 8 в десятичной системе.
  • 0100 — две цифры после единицы, значит, это 1 × 22, или 4 в десятичной системе.

Так понятнее, но что делать, если число в двоичной системе — это 1101. Всё просто. Разобьём это число на составляющие — 1000, 100 и 1.

  • 1000 — 1 × 23, или 8.
  • 100 — 1 × 22, или 4.
  • 1 — 1 × 20, или 1, так как не имеет чисел после единицы.

В сумме получаем 8 + 4 + 1 = 13.

Что в итоге

  • Бит — минимальная единица измерения цифровой информации, которая может принимать значения от 0 до 1.
  • Байт — это 8 битов, которые объединили, чтобы было удобнее считать.
  • Последовательность битов называют двоичным кодом.
  • Все современные цифровые устройства для расчётов используют биты и байты.
  • Современным компьютерам для работы надо много памяти, поэтому для удобства используют более объёмные единицы измерения. К примеру, в одном гибибайте содержится 1 073 741 824 байта.
  • Чаще всего люди используют десятичные приставки для обозначения единиц измерения информации (например, килобайт), хотя имеют в виду двоичные (например, кибибайт). Это создаёт путаницу наименований.

Изучайте IT на практике — бесплатно

Курсы за 2990 0 р.

Я не знаю, с чего начать
Научитесь: Профессия Python-разработчик Узнать больше
Понравилась статья?
Да

Пользуясь нашим сайтом, вы соглашаетесь с тем, что мы используем cookies 🍪

Ссылка скопирована