Что такое биты и байты
Автор: Боргомотов Вячеслав Андреевич
Организация: ЦСПСиД «Калининского района»
Населенный пункт: г.Санкт-Петербург
Магия внутри смартфона
Представьте себе обычный смартфон. Вы касаетесь экрана, и через долю секунды на нём появляется фотография вашего кота, открывается сообщение от друга или начинается любимая песня. Вы не видите проводов, не слышите щелчков механизмов. Кажется, что устройство живёт своей магической жизнью.
Но никакой магии нет. Есть строгая, почти аскетичная математика. Внутри процессора каждую секунду происходят миллиарды простейших действий, которые складываются в эту сложную картину. И в основе всех этих действий лежат всего два числа: ноль и единица.
Всё, что вы видите на экране: текст, фото, видео, звук, движения виртуального персонажа в игре, в конечном счёте превращается в бесконечную последовательность нулей и единиц. И два главных понятия в этом мире – бит и байт.
История: от первых механических компьютеров до электронных машин
Идея «считать» с помощью двух состояний не нова. Задолго до компьютеров люди использовали двоичную логику.
Первые шаги. Древнем Китае в «Книге Перемен» (И. Цзин) использовались гексаграммы – комбинации прерванных и целых линий. Это была, по сути, двоичная система для описания мироздания.
XVII век. Немецкий математик Готфрид Вильгельм Лейбниц в 1703 году написал трактат «Объяснение двоичной арифметики». Он показал, что любые числа можно записать с помощью всего двух цифр – 0 и 1. Лейбниц даже сконструировал прототип механического калькулятора, работающего на этом принципе. Но идея опередила время – механические шестерёнки были слишком ненадёжны.
XIX век. Английский математик Чарльз Бэббидж придумал «Аналитическую машину» – первый проект программируемого компьютера. А его коллега, графиня Ада Лавлейс, написала для этой машины первые в истории программы. Но машина Бэббиджа была десятичной: её шестерёнки имели 10 положений (от 0 до 9). Она оказалась чудовищно сложной в изготовлении – нужны были тысячи идеальных бронзовых шестерёнок.
1937-1940 годы. Перелом наступил, когда инженеры поняли: не нужно пытаться сделать «умный» механизм, который различает 10 уровней. Лучше сделать «очень глупый», но быстрый и надёжный переключатель, у которого всего два положения.
1937 год. Клод Шеннон в своей магистерской диссертации «Символьный анализ релейных и переключательных схем» доказал, что электрические реле (которые либо включены, либо выключены) могут выполнять любые логические операции: «И», «ИЛИ», «НЕ». Это был момент рождения цифровой логики.
1939-1942. Джон Атанасов и Клиффорд Берри построили первый электронный двоичный компьютер (ABC – Atanasoff–Berry Computer). Он использовал вакуумные лампы.
В 1940-е мир сделал выбор: десятичные гиганты (как ENIAC, который сначала был десятичным) проиграли двоичным системам. Электронные лампы и транзисторы идеально работали в режиме «есть сигнал / нет сигнала».
1945 год: Джон фон Нейман сформулировал знаменитую «архитектуру фон Неймана», в которой данные и команды хранятся в одной памяти. В этой архитектуре окончательно утвердилась двоичная система как основа.
Почему люди используют десятичную систему, а машины – двоичную
Это хороший вопрос. Человек считает десятками, потому что у него десять пальцев. Это интуитивно, естественно, не нужно ничего придумывать. Мы – десятичные существа. Компьютер – не человек. Компьютер – это кремний, электричество и провода.
Давайте представим, что мы попытались сделать «человечный» компьютер, который распознаёт цифры от 0 до 9 с помощью напряжения:
- 0 вольт – цифра 0
- 0.5 вольта – цифра 1
- 1 вольт – цифра 2
- 1.5 вольта – цифра 3
- ...
- 4.5 вольта – цифра 9
Проблема первая – это помехи. В реальной линии напряжения всегда гуляют. Из-за соседних проводов, включения чайника, пролетающей птицы на столбе напряжение 1.5 вольта может превратиться в 1.7. Для человека это пустяк. А для такого «десятичного» компьютера 1.7 вольта — это уже не «3», а неизвестно что. Ошибка неизбежна.
Проблема вторая – сложность схемы. Чтобы надёжно отличить 10 уровней напряжения, нужны сложные и дорогие аналоговые схемы.
Двоичный подход гениален своей простотой:
- Напряжение ниже 0.8 вольта – это «0».
- Напряжение выше 2.5 вольта – это «1».
Диапазон между 0.8 и 2.5 вольта – «мёртвая зона», зона неопределённости. Если из-за помех 0.7 стало 1.0 – это всё равно «0». Если 2.6 стало 2.4 – всё равно «1». Это даёт колоссальную помехоустойчивость.
Именно поэтому у цифрового мира всего два состояния: есть сигнал / нет сигнала, истина / ложь, включено / выключено. И это состояние называется бит.
Часть 1. Бит
Определение: что скрывается за словом «бит»
Слово бит (bit) – это сокращение от английского выражения binary digit, что переводится как «двоичная цифра».
Это самое маленькое количество информации, которое только можно себе представить. Меньше бита ничего не бывает. Это атом, неделимая крупица данных.
Главное свойство бита – он может принимать только два значения:
- 0 (ноль)
- 1 (единица)
Никаких «2», «5», «плюс», «минус», «может быть». Только чёрное или белое. Только да или нет. Только истина или ложь.
Вы можете представить бит как:
- Выключатель света в комнате: либо лампочка горит (1), либо не горит (0).
- Монетку в воздухе: либо орёл (1), либо решка (0). Варианта «встала на ребро» не существует.
- Ответ на вопрос «Ты любишь котиков?»: либо «Да» (1), либо «Нет» (0).
Два состояния: почему это так важно
Это кажется смешным и примитивным. Как с помощью одного выключателя можно сделать современный компьютер? Ответ: никак.
Один бит – это действительно очень, очень мало. С помощью одного бита можно закодировать всего два варианта событий.
Примеры:
|
Вопрос |
0 |
1 |
|
Пол человека |
Женский |
Мужской |
|
Наличие воды в стакане |
Пусто |
Полно |
|
Результат теста |
Не сдан |
Сдан |
|
Яркость пикселя (ч/б экран) |
Белый |
Чёрный |
Это всё. Больше одного бит не может. Поэтому ни один человек в здравом уме не стал бы передавать текст, фото или музыку по одному биту. Это всё равно что пытаться написать роман «Война и мир», используя букву «А» и букву «Б». Можно, но потребуется невероятно длинная последовательность, и никто не захочет её расшифровывать.
Но если взять много битов и договориться об их значении и тогда открывается безграничный мир.
Физический смысл: напряжение на проводе
А теперь самое интересное. Как компьютер «понимает», что бит – это 0 или 1? Откуда в кремнии берутся эти таинственные единицы? Всё очень прозаично и электрифицировано. Внутри процессора, оперативной памяти, жёсткого диска, флешки – везде есть маленькие ячейки, которые умеют хранить заряд электричества или пропускать ток.
Для процессора и оперативной памяти (транзисторы):
- Транзистор – это микроскопический электронный ключ, который может быть в двух состояниях:
- Закрыт. Ток не идёт, напряжение на выходе отсутствует (или близко к 0 вольт) – это логический 0.
- Открыт. Ток идёт, напряжение на выходе высокое (обычно от 2.5 до 5 вольт, зависит от поколения процессора) – это логическая 1.
Представьте себе водопроводный кран. Кран закрыт – вода (ток) не течёт. Кран открыт – вода бежит. Никаких полуоткрытых кранов в цифровом мире нет. Только «открыто» и «закрыто».
Для жёсткого диска:
В HDD (жестком диске) биты записаны с помощью намагниченности мельчайших участков поверхности вращающихся блинов.
- Если участок намагничен в одну сторону – бит = 0.
- Если участок намагничен в противоположную сторону – бит = 1.
Магнитная головка летит над этими участками и «чувствует» направление магнетизма.
Для usb-накопитель (ssd и прочее):
Используется эффект ловушки заряда. Клетка под названием «плавающий затвор транзистора» умеет хранить электроны.
- Если в клетке нет лишних электронов – бит = 1 (в некоторых типах памяти наоборот, но суть та же — два чётких состояния).
- Если в клетку загнали порцию электронов (научили её, «запрограммировали») – бит = 0.
Вывод: бит – это не абстракция. Это реальный физический объект: напряжение в проводе, направление магнетизма, наличие или отсутствие электронов в кармане. Компьютер буквально «ощущает» эти нули и единицы кончиками своих электронных пальцев.
Почему одного бита недостаточно
Вернёмся к нашей аналогии с выключателем. Допустим, мы хотим передать друг другу сообщение, используя только один бит (одну лампочку). Что мы можем сказать?
- Вариант 1: «Привет!» (зажигаем лампочку – 1).
- Вариант 2: «Пока!» (гасим лампочку – 0).
Это работает ровно до тех пор, пока нам нужно передать только два сообщения. А если сообщений три? «Привет», «Пока» и «Как дела?»?
Одного выключателя уже недостаточно, потому что у него всего два положения. Из этой ситуации нашли выход: взять два выключателя (два бита).
Два бита могут дать уже 4 комбинации:
- Бит_1 = 0, Бит_2 = 0 (оба выключены)
- Бит_1 = 0, Бит_2 = 1 (первый выкл, второй вкл)
- Бит_1 = 1, Бит_2 = 0 (первый вкл, второй выкл)
- Бит_1 = 1, Бит_2 = 1 (оба включены)
Количество возможных комбинаций растёт как 2 в степени n, где n – количество битов.
- 1 бит – 2¹ = 2 комбинации
- 2 бита – 2² = 4 комбинации
- 3 бита – 2³ = 8 комбинаций
- 4 бита – 2⁴ = 16 комбинаций
- 8 битов – 2⁸ = 256 комбинаций
Именно здесь, на восьмом бите, и появляется то самое магическое число 256, которое открывает дорогу к буквам, цифрам, знакам препинания и целым файлам.
Восемь объединённых битов получили отдельное имя – БАЙТ.
Часть 2. Байт
Первый шаг к осмысленной информации
Мы выяснили, что один бит – это слишком мало. Даже чтобы передать просто «да» или «нет», бит годится, но как только нужен третий вариант – он бессилен.
Поэтому биты решили собирать в группы. Самая ходовая и удобная группа оказалась из 8 бит. Эту группу назвали байт (byte).
Запомните это как таблицу умножения: 1 байт = 8 бит.
Теперь самое интересное. Если один бит позволял закодировать 2 варианта, то группа из 8 битов позволяет закодировать: 2⁸ = 256 различных комбинаций
То есть из восьми выключателей (каждый может быть в положении 0 или 1) можно собрать 256 разных паттернов – от «все выключены» (00000000) до «все включены» (11111111).
Сравнение: бит – это буква, байт – это слово
Вернёмся к аналогии с алфавитом.
Бит – это как одна буква. Сама по себе буква «К» почти ничего не значит. Её слишком мало для осмысленного сообщения.
Байт – это как короткое слово из восьми букв, например, «КОМПЬЮТЕР» (хотя здесь 9 букв, но суть понятна). У такого слова уже есть значение.
Но точнее будет другая аналогия. Представьте себе азбуку Морзе.
В азбуке Морзе есть всего два символа: точка и тире (плюс паузы между ними). Это как 0 и 1. Но сами по себе точка и тире ничего не означают. Только когда вы собираете комбинацию из точек и тире, например:
- . – (точка-тире) = буква А
- –… (тире-точка-точка-точка) = буква Б
Так и в цифровом мире: комбинация из восьми битов (0 и 1) превращается в осмысленный символ – букву, цифру, знак препинания или команду.
Почему именно 8? Краткий исторический экскурс
Это самый частый вопрос, который задают новички: «Почему байт – это именно 8 бит, а не 7 и не 9?» Ответ: исторический, технический и немного магический.
256 – золотое число
В конце 1950-х – начале 1960-х годов инженеры искали оптимальный размер группы битов. Они понимали, что группа должна быть достаточно большой, чтобы закодировать все необходимые символы: латиницу (строчные и заглавные), цифры, знаки препинания, управляющие символы (перевод строки, табуляция, конец файла).
- 5 битов – 32 комбинации (хватает только на 26 латинских букв плюс немного, но нет заглавных и цифр) – слишком мало.
- 6 битов – 64 комбинации (уже лучше, но всё равно нет заглавных и цифр одновременно) – маловато.
- 7 битов – 128 комбинаций (уже много! Хватает на строчные и заглавные латинские буквы, цифры, знаки препинания и даже на несколько управляющих символов). Именно 7 битов использовались в первой массовой кодировке ASCII (American Standard Code for Information Interchange).
Но почему тогда не остановились на 7?
Потому что инженеры заглянули в будущее. 7 битов – это здорово для английского языка. Но что делать с французским (буквы с диакритикой: é, è, ê), немецким (ä, ö, ü), датским (æ, ø, å), испанским (ñ), не говоря уже о греческом, кириллице или арабском? 128 комбинаций – это катастрофически мало для всего мира.
8 битов дают 256 комбинаций. Этого уже хватало, чтобы разместить не только базовые 128 символов ASCII, но и ещё 128 «дополнительных» символов для национальных языков. Плюс оставалось место для символов псевдографики – тех самых рамок, уголков и линий, которые использовались в старых DOS-программах для рисования интерфейсов.
Степень двойки
Компьютеры – двоичные машины. Они «любят» числа, которые являются степенями двойки: 1, 2, 4, 8, 16, 32, 64, 128, 256, 512, 1024 и так далее.
8 битов – это ровно один байт. 2 байта = 16 бит. 4 байта = 32 бита. 8 байт = 64 бита. Всё красиво и кратно. Если бы байт был, скажем, 10 битов, то 16-битная шина (ширина магистрали данных в процессоре) не была бы кратна байту. Это создавало бы неудобства при адресации памяти и работе с данными.
Решающий выбор IBM
Самый весомый аргумент – 1964 год, компания IBM. Они разрабатывали новое семейство компьютеров System/360. Это была революционная архитектура, которая должна была стать стандартом для бизнеса и науки на десятилетия вперёд.
Инженеры IBM приняли решение: 8 битов = 1 байт. Почему?
- 8 битов позволяли адресовать (обращаться) к каждому байту памяти индивидуально.
- 8 битов удобно сочетались с 32-битными командами (4 байта) и 64-битными данными (8 байтов).
- 8 битов давали 256 комбинаций — достаточно для EBCDIC (собственная кодировка IBM, более расширенная, чем ASCII).
IBM System/360 стал невероятно успешным. Его архитектура породила мейнфреймы, которые работают до сих пор (например, z/Architecture – прямой потомок). А стандарт «8 бит = байт» был подхвачен всеми остальными производителями: DEC, Intel, Motorola, Zilog, а позже и Apple, и Microsoft.
Конечно, в истории были компьютеры с байтами другого размера:
- 6 битов – некоторые старые машины (например, CDC 6600 – суперкомпьютер 1960-х).
- 7 битов – PDP-10 (компьютер, на котором работали первые хакеры MIT и создатели Unix, но там байт мог быть и другим — программист сам задавал размер).
- 9 битов – некоторые миникомпьютеры (например, PDP-8 использовал 12-битные слова, но байта как такового там не было).
Но победил именно 8-битный байт – благодаря IBM и тому, что 256 комбинаций оказались идеальным балансом между «достаточно много» и «не слишком расточительно».
Важно: Сегодня в 99.9% случаев, когда говорят «байт», подразумевают ровно 8 бит. Это мировой стандарт.
Что можно закодировать одним байтом? Разбираем 256 комбинаций
Давайте заглянем внутрь одного байта. Представьте себе таблицу из 256 ячеек. Каждая ячейка хранит один из возможных паттернов от 00000000 (это 0 в десятичной системе) до 11111111 (это 255 в десятичной).
В старых кодировках (ASCII и расширенный ASCII, например, Windows-1251 для русского языка) эти 256 значений распределялись так:
|
Диапазон |
Значение |
Что там лежит |
|
0-31 |
Управляющие символы |
Невидимые команды: перевод строки (LF, код 10), возврат каретки (CR, код 13), табуляция (код 9), конец файла (EOF, код 26), звонок (BEL, код 7 – в старых терминалах издавал писк) |
|
32 |
Пробел |
Обычный пробел между словами |
|
33-47 |
Знаки препинания |
! " # $ % & ' ( ) * + , - . / |
|
48-57 |
Цифры |
0 1 2 3 4 5 6 7 8 9 |
|
58-64 |
Ещё знаки |
: ; < = > ? @ |
|
65-90 |
Заглавные латинские буквы |
A B C D E F G H I J K L M N O P Q R S T U V W X Y Z |
|
91-96 |
Ещё знаки |
[ \ ] ^ _ ` | |
|
97-122 |
Строчные латинские буквы |
a b c d e f g h i j k l m n o p q r s t u v w x y z |
|
123-127 |
Ещё знаки |
} ~ (и символ DEL – удаление) |
|
128-255 |
Расширенная часть |
Здесь каждый производитель размещал своё. В Windows-1251 – русские буквы (от А до Я и а до я), в KOI8-R – другая раскладка русских букв, в CP437 (старая DOS) – символы псевдографики (уголки, линии, рожицы, карточные масти) |
В современных системах (Unicode, UTF-8) один байт используется только для кодирования латиницы, цифр и знаков – то есть первых 128 символом. Русские буквы, греческие, арабские, иероглифы и эмодзи требуют больше одного байта. Об этом мы поговорим в части про кодировки.
Визуальный пример: как «А» превращается в байты
Давайте посмотрим на конкретный пример. Возьмём слово «Hi» (приветствие на английском).
- Буква H в кодировке ASCII (и UTF-8) имеет номер 72.
- Буква i имеет номер 105.
Как выглядят эти номера в двоичном виде (в виде битов)?
- 72 в десятичной – в двоичной: 01001000
- 105 в десятичной – в двоичной: 01101001
Таким образом, слово «Hi» в памяти компьютера будет выглядеть как последовательность байтов: 01001000 01101001
Если вы откроете любой текстовый файл в HEX-редакторе (программе, которая показывает сырые байты), вы увидите именно такие шестнадцатеричные числа (48 и 69 – это те же 72 и 105, но в 16-ричной системе).
Что означает приставка «байт» в привычных словах
Вы наверняка слышали слова «килобайт», «мегабайт», «гигабайт». Теперь, когда мы знаем, что такое байт, эти слова обретают смысл:
- 1 килобайт (КБ) = 1024 байта (примерно 1024 символа – полстраницы текста).
- 1 мегабайт (МБ) = 1024 килобайта = 1 048 576 байт (примерно небольшая книга в plain text).
- 1 гигабайт (ГБ) = 1024 мегабайта = чуть больше миллиарда байт (один фильм в среднем качестве).
- 1 терабайт (ТБ) = 1024 гигабайта (библиотека из сотен фильмов или тысяча книг).
Почему 1024, а не 1000? Это число тоже степень двойки: 2¹⁰ = 1024. Компьютерам так удобнее. Одна из следующих частей будет посвящена этому подробно.
Часть 3. Как измерить информацию
От байта – к более крупным единицам
Мы уже знаем, что:
- 1 бит – это минимальная единица, «да» или «нет».
- 1 байт = 8 битов – это один символ текста (например, буква «K»).
Но современные файлы содержат миллионы и миллиарды таких символов. Оперировать числами вроде «14 901 245 байт» неудобно ни человеку, ни программисту. Нужны более крупные единицы измерения.
Так появились привычные всем килобайты, мегабайты, гигабайты и терабайты.
Проблема в том, что эти слова взяты из физики, где приставка «кило» означает ровно 1000. Например, 1 километр = 1000 метров, 1 килограмм = 1000 граммов.
Но в цифровом мире 1 килобайт ≠ 1000 байт. И вот здесь начинается самое интересное (и самое запутанное).
Вернёмся к главному принципу компьютеров: они «мыслят» степенями двойки.
- 2⁰ = 1
- 2¹ = 2
- 2² = 4
- 2³ = 8
- 2⁴ = 16
- 2⁵ = 32
- 2⁶ = 64
- 2⁷ = 128
- 2⁸ = 256
- 2⁹ = 512
- 2¹⁰ = 1024
Число 1024 – это ближайшая степень двойки к круглому числу 1000. Компьютерам работать с 1024 гораздо удобнее: адресация памяти, разрядность шин, размер кэша – всё завязано на степени двойки.
Поэтому исторически сложилось, что: 1 килобайт (КБ) = 1024 байта. Не 1000, а 1024. Аналогично:
- 1 мегабайт (МБ) = 1024 килобайта = 1024 × 1024 = 1 048 576 байт (а не ровно 1 000 000)
- 1 гигабайт (ГБ) = 1024 мегабайта = 1 073 741 824 байта (а не 1 000 000 000)
- 1 терабайт (ТБ) = 1024 гигабайта = 1 099 511 627 776 байт (а не 1 000 000 000 000)
Полная таблица единиц измерения информации
Вот как выглядит полная иерархия. В левой колонке – «компьютерные» (двоичные) единицы, которые используются в операционных системах (Windows, macOS, Linux). В правой – для сравнения, сколько это было бы в «человеческих» десятичных единицах.
|
Единица |
Сокращение |
Точное значение в байтах |
Примерное значение |
Для сравнения |
|
1 Бит |
1 б (bit) |
⅛ байта |
0,125 байта |
Да / Нет |
|
1 Байт |
1 Б (B) |
1 |
1 |
Один символ («A», «3», «?») |
|
1 Килобайт |
1 КБ (KB) |
1024 |
~ 1 тысяча |
Полстраницы текста |
|
1 Мегабайт |
1 МБ (MB) |
1 048 576 |
~ 1 миллион |
Небольшой роман (книга 300 страниц) |
|
1 Гигабайт |
1 ГБ (GB) |
1 073 741 824 |
~ 1 миллиард |
Один фильм в среднем качестве |
|
1 Терабайт |
1 ТБ (TB) |
1 099 511 627 776 |
~ 1 триллион |
200 фильмов в HD или миллион книг |
|
1 Петабайт |
1 ПБ (PB) |
1024 ТБ |
~ 1 квадриллион |
Дата-центр среднего размера |
|
1 Эксабайт |
1 ЭБ (EB) |
1024 ПБ |
~ 1 квинтиллион |
Вся информация в интернете (по некоторым оценкам) |
Путаница: почему один килобайт иногда равен 1000 байт?
А теперь самое весёлое, из-за чего страдают и новички, и опытные пользователи.
Производители жёстких дисков, SSD-накопителей, флешек и DVD-дисков ОЧЕНЬ любят десятичную систему. Почему? Потому что числа получаются больше и красивее:
- Производитель берёт диск и устанавливает на него 1 000 000 000 000 байт (ровно триллион).
- Он честно пишет на коробке: 1 ТБ (терабайт).
- Покупатель видит большую цифру и радуется.
Но когда вы подключаете этот диск к компьютеру, операционная система (например, Windows) считает иначе. Она делит 1 000 000 000 000 на 1024 (получает килобайты), потом ещё раз на 1024 (получает мегабайты), потом ещё раз на 1024 (получает гигабайты) и ещё раз на 1024 (получает терабайты).
Математика:
1 000 000 000 000 байт ÷ 1024 = 976 562 500 КБ
976 562 500 КБ ÷ 1024 = 953 674 МБ
953 674 МБ ÷ 1024 ≈ 931 ГБ
Это означает, что ваш новый «терабайтный» диск в Windows показывает всего 931 ГБ. Куда пропали 69 ГБ? (1000 − 931 = 69).
Ответ: Никуда не пропали. Просто Windows честно считает в двоичных гигабайтах (где 1 ГБ = 1 073 741 824 байта), а производитель нарисовал на коробке десятичные гигабайты.
Никто никого не обманывает. Просто разные системы измерения. Юридически производитель прав: на диске действительно 1 000 000 000 000 байт, то есть 10¹² байт, а по приставке «тера» в Международной системе единиц (СИ) так и полагается — 10¹². Но операционные системы десятилетиями использовали двоичные приставки, и образовалась эта путаница.
Бинарные приставки: Кибибайт, Мебибайт, Гибибайт
Чтобы окончательно разрешить путаницу, в 1998 году Международная электротехническая комиссия (МЭК) придумала специальные двоичные приставки. Они звучат немного смешно, но зато точно.
|
Десятичная приставка (СИ) |
Значение |
Двоичная приставка (МЭК) |
Значение |
|
кило (k) |
10³ = 1000 |
киби (Ki) |
2¹⁰ = 1024 |
|
мега (M) |
10⁶ = 1 000 000 |
меби (Mi) |
2²⁰ = 1 048 576 |
|
гига (G) |
10⁹ = 1 000 000 000 |
гиби (Gi) |
2³⁰ = 1 073 741 824 |
|
тера (T) |
10¹² = 1 000 000 000 000 |
теби (Ti) |
2⁴⁰ = 1 099 511 627 776 |
Соответственно:
- 1 кибибайт (КиБ) = 1024 байта (это то, что раньше называли килобайтом).
- 1 мебибайт (МиБ) = 1 048 576 байт (то, что раньше называли мегабайтом).
- 1 гибибайт (ГиБ) = 1 073 741 824 байта (то, что раньше называли гигабайтом).
В идеальном мире нужно было бы говорить:
- «На моей флешке 32 ГиБ» (двоичных гибибайт).
- «Производитель обещает 500 ГБ» (десятичных гигабайт, то есть 500 000 000 000 байт).
Но в реальности почти никто не использует слова «кибибайт» и «гибибайт». Люди по привычке говорят «килобайт», подразумевая 1024, а производители − 1000. Живите с этим.
Что означают приставки в разных операционных системах
Чтобы усилить путаницу, разные операционные системы ведут себя по-разному.
Windows всегда использовала двоичные приставки (1 КБ = 1024 Б, 1 МБ = 1024 КБ). Поэтому при подключении «терабайтного» диска она показывает 931 ГБ. Умная, но строгая.
macOS (последних версий) показывает десятичные приставки (1 КБ = 1000 Б). Поэтому тот же диск на Mac покажет 1 ТБ. Пользователь радуется, что «ничего не пропало».
Linux и разные файловые менеджеры могут показывать и так, и так. Многие современные утилиты по умолчанию используют двоичные приставки, но с подписью «KiB», «MiB», «GiB» (чтобы не путать).
Реальные примеры из жизни, которые стоит запомнить
|
Что измеряем |
Размер в байтах |
В удобных единицах |
|
Обычный текстовый файл (эта статья) |
~ 25 000 Б |
~ 24 КБ (или 25 КБ по-десятичному) |
|
Старая дискета (3,5 дюйма) |
1 474 560 Б |
1,44 МБ (двоичных!) |
|
Компакт-диск (CD-ROM) |
650 000 000 Б |
650 МБ (обычно десятичных) |
|
DVD (однослойный) |
4 700 000 000 Б |
4,7 ГБ (десятичных, в Windows ~4,38 ГБ) |
|
Флешка на 16 ГБ (как написано) |
16 000 000 000 Б |
в Windows покажет ~14,9 ГБ |
|
Жёсткий диск на 2 ТБ (как написано) |
2 000 000 000 000 Б |
в Windows покажет ~1,81 ТБ |
|
SSD на 500 ГБ |
500 000 000 000 Б |
в Windows покажет ~465 ГБ |
Зачем всё это знать обычному пользователю?
- Чтобы не паниковать, когда «пропало место». Когда вы покупаете флешку на 64 ГБ, а Windows показывает 59,6 ГБ − это нормально. Место не украли. Это особенности двоичной арифметики.
- Чтобы не спорить с консультантом в магазине. Консультант скажет: «Жёсткий диск на 2 ТБ». Windows покажет 1,81 ТБ. Никто не врёт. Просто один считает в десятеричных терабайтах, другой − в двоичных тебибайтах.
- Чтобы правильно оценивать объёмы. Когда вам нужно сохранить 1000 фотографий по 5 МБ каждая, помните: 1000 × 5 = 5000 МБ. В десятеричных это 5 ГБ, а в двоичных − примерно 4,88 ГБ. Разница небольшая, но с терабайтами она становится ощутимой.
Часть 4. Скорость передачи данных
Вечная путаница: почему тариф 100 Мбит/с, а качает со скоростью 10 МБ/с?
Представьте ситуацию. Вы подключаете домашний интернет. Провайдер предлагает тариф «Суперскорость 100 Мбит/с». Вы радуетесь, приходите домой, запускаете Steam, а там скорость скачивания показывает 10–11 МБ/с.
Возникает закономерный вопрос: «Где остальные 90? Меня обманули?»
Нет, не обманули. Просто провайдер говорит в битах, а программы показывают в байтах. А вы, возможно, не заметили разницы между маленькой буквой «б» и большой «Б».
Великий закон цифрового мира:
1 байт = 8 бит.
Скорость в байтах = Скорость в битах / 8
Давайте посчитаем для тарифа 100 Мбит/с:
100 Мбит/с ÷ 8 = 12,5 МБ/с
Именно столько мегабайт в секунду можно скачать в идеальных условиях (без потерь, без помех, без загруженности канала, без накладных расходов протоколов).
Реальная скорость загрузки в Steam или браузере будет чуть ниже – около 11-11,5 МБ/с из-за служебного трафика (заголовки пакетов, подтверждения получения и т.д.). Но 10-11 МБ/с – это абсолютно нормальное значение для 100-мегабитного канала.
Никто вас не обманул. Вы просто перепутали биты и байты.
Как правильно читать: маленькая «б» и большая «Б»
В русском языке (и в английском тоже) есть чёткое правило, которое соблюдают технически грамотные люди, компании и разработчики программ.
|
Обозначение |
Расшифровка |
Что означает |
Где встречается |
|
бит/с (или b/s, bps) |
биты в секунду |
Скорость передачи данных (как бегут биты по проводу) |
Тарифы провайдеров, скорость сетевых интерфейсов (100 Мбит/с), Wi-Fi (300 Мбит/с), USB (5 Гбит/с) |
|
Байт/с (или B/s, Bps) |
байты в секунду |
Скорость записи/чтения файлов (сколько байт сохранилось на диск) |
Торренты (10 МБ/с), Steam (15 МБ/с), копирование файлов в Windows (30 МБ/с) |
Важно: Иногда можно встретить обозначение KB/s (килобайт в секунду) или Kb/s (килобит в секунду). Буква B (большая) = Byte (байт), буква b (маленькая) = bit (бит). Не путайте!
В русскоязычном интернете и программах часто пишут:
- Кбит/с – килобиты в секунду (скорость интернета)
- КБ/с – килобайты в секунду (скорость загрузки файлов)
Примеры из жизни:
Вы смотрите тариф провайдера:
- Тариф: 500 Мбит/с
- Максимальная скорость загрузки: 500 ÷ 8 = 62,5 МБ/с
- Реальная (с учётом потерь): около 55–60 МБ/с
Вы видите в Steam скорость скачивания 50 МБ/с. Какой нужен тариф? 50 × 8 = 400 Мбит/с (плюс запас ~20% = ~480–500 Мбит/с)
Вы копируете файл по локальной сети и видите 100 МБ/с. Какая скорость в битах? 100 × 8 = 800 Мбит/с. Значит, ваша сетевая карта и кабель должны поддерживать гигабит (1000 Мбит/с)
Почему провайдеры используют биты, а не байты?
- На физическом уровне данные передаются битами.
Сетевое оборудование (модемы, коммутаторы, маршрутизаторы) работают с отдельными битами. Они не думают про байты, они просто гонят последовательности нулей и единиц. Поэтому технически правильно измерять скорость линии в битах в секунду.
- Числа получаются больше и красивее.
Маркетинговый фактор тоже никто не отменял. Сказать «100 Мбит/с» звучит внушительнее, чем «12,5 МБ/с». Разница в 8 раз! С цифрами 500 Мбит/с против 62,5 МБ/с – то же самое.
- Это мировой стандарт.
Во всём мире скорость сетей (Ethernet, Wi-Fi, LTE, 5G) указывается в битах в секунду. 10 Mbps, 100 Mbps, 1 Gbps, 10 Gbps. Так сложилось, и менять традицию никто не собирается.
- Ранние сети были синхронными.
В некоторых старых интерфейсах (например, RS-232) один байт передавался не 8 битами, а 10 (8 бит данных + стартовый + стоповый биты). Формула «байт = 8 бит» там не сработала бы. Поэтому проще было всегда говорить в битах.
Почему программы показывают в байтах?
Потому что пользователю удобнее видеть, сколько реальных данных (файлов) скачалось или записалось. Когда вы качаете фильм размером 4,7 ГБ, вы хотите знать, сколько процентов от 4,7 ГБ уже получено. А не запутываться в пересчётах «4,7 ГБ × 8 = 37,6 Гбит».
Торренты, браузеры, Steam, Epic Games, копирование файлов в Windows, macOS, Linux – все они показывают скорость в байтах в секунду (КБ/с, МБ/с). Потому что они имеют дело с файлами, размер которых измеряется в байтах.
Реальные примеры скоростей (чтобы ориентироваться)
|
Действие |
Типичная скорость |
В битах (для провайдера) |
В байтах (для программ) |
|
Просмотр веб-страниц, почта |
медленно достаточно |
от 1-5 Мбит/с |
от 0,125-0,625 МБ/с |
|
YouTube 1080p (Full HD) |
нормально |
~5-10 Мбит/с |
~0,625-1,25 МБ/с |
|
YouTube 4K (Ultra HD) |
быстро |
~20-35 Мбит/с |
~2,5-4,4 МБ/с |
|
Видеоконференция Zoom (HD) |
средне |
~3-4 Мбит/с |
~0,375-0,5 МБ/с |
|
Скачивание игры в Steam |
отлично |
100 Мбит/с |
12,5 МБ/с |
|
Скачивание фильма за минуту |
очень быстро |
500 Мбит/с |
62,5 МБ/с |
|
Сверхбыстрый интернет (гигабит) |
молниеносно |
1000 Мбит/с (1 Гбит/с) |
125 МБ/с |
Служебный трафик: почему вы никогда не получите ровно «скорость / 8»
Формула «делить на 8» – теоретический максимум. На практике скорость загрузки файла всегда будет чуть ниже. Потому что:
- Заголовки пакетов (TCP/IP). Данные режутся на пакеты. К каждому пакету (например, 1460 байт полезных данных) добавляется заголовок (TCP – 20 байт, IP – 20 байт, Ethernet – 14 байт, плюс межпакетные паузы). В итоге на 1460 байт полезной нагрузки приходится около 54 байт служебной. Это уже около 3,5% накладных расходов.
- Подтверждения получения (ACK). Протокол TCP требует, чтобы получатель подтверждал получение каждого пакета. Эти подтверждения тоже занимают время и часть канала.
-
Повторы потерянных пакетов. Если пакет потерялся по пути (а на линиях с помехами это случается), его нужно пересылать заново. Это съедает скорость.
- Загруженность канала. Ваш провайдер делит магистральный канал между многими абонентами. Вечером, когда все смотрят YouTube и Netflix, скорость может упасть.
- Ограничения на стороне сервера. Даже если у вас гигабитный канал, сервер, откуда вы качаете файл, может отдавать его со скоростью 50 Мбит/с. Вы от этого быстрее не станете.
Для хорошего 100-мегабитного кабельного интернета реальная скорость загрузки в торренте (с достаточно «жирными» раздачами) – около 11-11,3 МБ/с. Для гигабитного (1000 Мбит/с) – около 110-115 МБ/с (теоретический максимум 125 МБ/с). И это нормально.
Как не попасть в ловушку при выборе тарифа
Совет 1: Всегда переводите тариф провайдера из мегабит в мегабайты. Прочитали «500 Мбит/с» и мысленно разделили на 8 получили 62,5 МБ/с. Это максимальная скорость, с которой вы будете качать файлы при идеальных условиях.
Совет 2: Не берите тариф с запасом, если у вас старое оборудование. Старая Wi-Fi точка доступа (роутер) может поддерживать не более 100 Мбит/с по воздуху. Даже если у вас тариф на 500 Мбит/с, по Wi-Fi вы получите не более 70-90 Мбит/с (8-11 МБ/с). Гигабитный тариф требует гигабитного роутера и кабеля категории не ниже 5e.
Совет 3: Узнайте, какова скорость до международных серверов. Многие провайдеры дают высокую скорость внутри своей сети (до «одноклассников» и «вконтакте»), но до зарубежных серверов (Steam, GitHub, облака) трафик может идти по узкому каналу.
Совет 4: Не гонитесь за гигабитом, если вы не скачиваете терабайты ежедневно. Для большинства задач (YouTube 4K, видеозвонки, онлайн-игры) достаточно 100-200 Мбит/с. Гигабит нужен тем, кто скачивает современные игры (по 70-150 ГБ) регулярно и не хочет ждать.
Часть 5. Кодировки и язык мира (Юникод)
Проблема «кракозябр»: когда одного байта стало мало
Итак, мы знаем, что один байт может закодировать 256 различных символов. В 1960-1970-х годах этого казалось более чем достаточно. Американцы создали ASCII (American Standard Code for Information Interchange) – 7-битную кодировку на 128 символов, куда вошли:
- Латинские буквы (строчные и заглавные)
- Цифры (0-9)
- Знаки препинания (, . ; : ? ! и т.д.)
- Управляющие символы (перевод строки, табуляция и пр.)
А свободный 8-й бит (который добавлял ещё 128 символов, с 128 по 255) каждая страна или даже компания использовала по-своему. Для русского языка придумали несколько кодировок:
- Windows-1251 (стандарт Microsoft для Windows)
- KOI8-R (кодировка для Unix и электронной почты)
- CP866 (кодировка для MS-DOS, старой операционной системы)
- ISO-8859-5 (международный стандарт, но не прижился)
И вот тут начался ад. Один и тот же байт (например, число 200) в одной кодировке означал букву «ё», в другой – «╚», в третьей – вообще какой-то псевдографический уголок.
Реальный пример из жизни 1990-х. Вы получаете письмо от друга из другой страны. Открываете его, а там:
????? ???? "???????"
Или:
ЁўҐв вл ¤ «Џашт»
Выглядит как бред сумасшедшего. На самом деле это всего лишь русский текст, который система попыталась прочитать в неправильной кодировке (например, латинской ASCII вместо русской Windows-1251).
Эта проблема называлась «крякозябры» (или «крокозябры»). В 1990-е и начале 2000-х люди тратили уйму времени, переключая кодировки в браузере (вспомните меню «Вид → Кодировка» в Internet Explorer и Netscape Navigator).
Очевидно, что просто добавить 8-й бит было недостаточно. Миру нужен был единый стандарт на все буквы всех языков мира.
Рождение Юникода (Unicode): одна таблица для всей планеты
В 1991 году появилась организация Unicode Consortium (Консорциум Юникода). Они поставили амбициозную цель: присвоить уникальный номер каждому символу каждого письменного языка в мире. Не только английской «A» и русской «А». А также:
- Иероглифам (китайским, японским, корейским – CJK)
- Арабскому, ивриту, персидскому
- Греческому, армянскому, грузинскому
- Тибетскому, тайскому, кхмерскому
- Мёртвым языкам (египетские иероглифы, клинопись)
- Математическим символам (∑, ∫, ∀, ∃, ∞)
- Стрелочкам, геометрическим фигурам, валютам (₽, €, ¥, £)
- И, конечно, эмодзи (смайликам, сердечкам, животным, еде и всему такому)
Каждый символ в Юникоде получает кодовую точку (code point) – номер, который записывается в шестнадцатеричной системе с префиксом U+.
Примеры:
|
Символ |
Кодовая точка (Юникод) |
Десятичный номер (для понимания) |
|
Латинская A |
U+0041 |
65 |
|
Кириллическая А (русская) |
U+0410 |
1040 (это уже > 255!) |
|
Цифра 5 |
U+0035 |
53 |
|
Знак доллара $ |
U+0024 |
36 |
|
Русская буква «ё» |
U+0451 |
1105 |
|
Смайлик «довольное лицо» |
U+1F60A |
128522 (намного больше 255!) |
Видите проблему? Многие кодовые точки (особенно иероглифы, эмодзи, редкие символы) намного больше 255. В один байт они просто не помещаются. Нужны 2 байта, 3 байта или даже 4 байта для одного символа.
Юникод – это таблица (набор номеров). Но вопрос: как эти номера записать в файл или передать по сети в виде последовательности байтов? Для этого существует несколько форматов преобразования – UTF (Unicode Transformation Format).
Самый распространённый из них – UTF-8. UTF-8 (самый умный и экономный). UTF-8 использует переменную длину символа: от 1 до 4 байтов.
При этом он спроектирован так, что символы классической ASCII (латиница, цифры, знаки) занимают ровно 1 байт и выглядят так же, как в старом добром ASCII. Это позволяет открывать старые текстовые файлы без проблем.
Правила UTF-8:
- Если код символа от 0 до 127 (ASCII) → 1 байт (0xxxxxxx).
- Если код от 128 до 2047 → 2 байта (110xxxxx 10xxxxxx).
- Если код от 2048 до 65535 → 3 байта (1110xxxx 10xxxxxx 10xxxxxx).
- Если код от 65536 до 1114111 → 4 байта (11110xxx 10xxxxxx 10xxxxxx 10xxxxxx).
Примеры в UTF-8:
|
Символ |
Код в Юникоде |
В байтах UTF-8 |
Количество байтов |
|
Латинская A |
U+0041 (65) |
01000001 |
1 байт |
|
Русская А |
U+0410 (1040) |
11010000 10010000 |
2 байта |
|
Русская «ё» |
U+0451 (1105) |
11010001 10010001 |
2 байта |
|
Символ евро € |
U+20AC (8364) |
11100010 10000010 10101100 |
3 байта |
|
Смайлик |
U+1F60A (128522) |
11110000 10011111 10011000 10001010 |
4 байта |
|
Иероглиф «水» (вода) |
U+6C34 (27700) |
11100110 10110000 10110100 |
3 байта |
Главные преимущества UTF-8:
- Совместимость с ASCII. Любой старый файл на английском языке остаётся корректным UTF-8.
- Экономия для латиницы. Текст на английском занимает столько же места, сколько и раньше (1 байт на символ).
- Отсутствие «кракозябр» в будущем. Если программа понимает UTF-8, она правильно покажет любой язык.
- Поддержка всех символов Юникода (до 1 112 064 кодовых точек).
Недостатки UTF-8:
- Для кириллицы, греческого, арабского, иврита – 2 байта на символ (вместо 1 в однобайтовых кодировках типа Windows-1251). Файл с русским текстом становится в 2 раза больше.
- Для иероглифов и эмодзи – 3-4 байта.
Сегодня UTF-8 — стандарт интернета. Более 98% всех веб-сайтов используют UTF-8. HTML5, JSON, XML, современные языки программирования — всё по умолчанию работает в UTF-8.
Другие форматы: UTF-16 и UTF-32
UTF-16 – использует 2 или 4 байта на символ. Все символы из первой «плоскости» (базовая многоязычная плоскость, где живёт большинство символов) – 2 байта. Для эмодзи и очень редких иероглифов – 4 байта. Используется внутри Windows (внутреннее представление строк), а также в Java и C#.
UTF-32 – использует ровно 4 байта на каждый символ. Очень удобен для программной обработки (каждый символ имеет фиксированную длину). Но очень расточителен для памяти и диска: текст на русском или английском будет занимать в 4 раза больше места, чем в UTF-8. Используется редко, в основном во внутренних структурах некоторых языков программирования.
Почему русская буква «Я» в современном интернете весит 2 байта?
В однобайтовой кодировке Windows-1251 буква «Я» занимала 1 байт (например, число 223). Но в этой кодировке нельзя было одновременно написать «Я» и смайлик, и вообще за пределами России всё превращалось в кракозябры.
Переход на Юникод и UTF-8 решил проблему совместимости, но за это пришлось заплатить:
- Латинские буквы (A, B, C...) → 1 байт (как раньше)
- Русские буквы (А, Б, В... Я) → 2 байта
- Эмодзи → 4 байта
Поэтому сейчас файл с русским текстом в UTF-8 будет ровно в 2 раза больше, чем в устаревшей Windows-1251.
Как эмодзи помещаются в 4 байта (и почему они сломали старые системы)
Символы-эмодзи (смайлики, сердца, животные, флаги) были добавлены в Юникод начиная с версии 6.0 (2010 год). Их кодовые точки лежат в диапазоне от U+1F600 до U+1F9FF и выше.
Эти числа больше 65535, поэтому в UTF-8 они занимают 4 байта.
Старые программы (Windows 7 без обновлений, очень старые телефоны) не знали об эмодзи. Когда они встречали 4-байтную последовательность UTF-8, которая соответствовала смайлику, они не могли найти картинку для отображения и показывали вместо неё пустой квадратик () или вопросительный знак в ромбике.
Сегодня все современные системы поддерживают эмодзи. Но до сих пор в некоторых терминалах или старых базах данных эмодзи могут превращаться в «».
Почему текстовый редактор иногда неправильно открывает файл?
Вы открываете текстовый файл, а там вместо текста – иероглифы или вопросы. Программа прочитала байты неправильной кодировкой. Как это работает? Файл – это просто последовательность байтов. Например: 11010000 10010000 (два байта).
- Если редактор думает, что это UTF-8, он прочитает эти 2 байта как русскую букву А.
- Если редактор ошибочно думает, что это Windows-1251 (русская старая кодировка), он прочитает эти же 2 байта как два символа: первый байт = Ð, второй = . И вы увидите два непонятных символа.
Как лечить:
Современные редакторы (VS Code, Notepad++, Sublime Text, даже обычный Блокнот в Windows 10/11) автоматически определяют UTF-8. Проблемы возникают со старыми файлами или когда файл сохранили в экзотической кодировке. В редакторах нужно вручную выбрать «Открыть как → UTF-8» или «Перекодировать».
Итог по кодировкам (коротко и ясно)
|
Кодировка |
Сколько байт на символ |
Где использовалась |
Статус сегодня |
|
ASCII |
1 (7 бит) |
Английский текст в 1960–1990х |
Устарела, но живёт внутри UTF-8 |
|
Windows-1251 |
1 (8 бит) |
Русский Windows в 1990–2000х |
Устаревает, но старые документы есть |
|
KOI8-R |
1 (8 бит) |
Unix, электронная почта 1990х |
Устарела |
|
UTF-8 |
1, 2, 3 или 4 |
Современный интернет и все системы |
Стандарт |
|
UTF-16 |
2 или 4 |
Windows внутри, Java, C# |
Используется, но реже UTF-8 |
|
UTF-32 |
4 |
Редко, в основном для обработки |
Экзотика |
Заключение. Почему это знание спасает деньги и нервы
Мы прошли долгий путь. От одного крошечного бита – до глобальной таблицы Юникода, от выключателя света – до эмодзи, от первого компьютера IBM – до современного интернета.
Теперь давайте соберём всё воедино и ответим на главный вопрос: а зачем обычному человеку всё это знать?
Ответ прост: чтобы не быть обманутым, не покупать «пустые» флешки, не платить за воздух провайдеру и понимать, почему компьютер иногда ведёт себя странно.
Итог в один список
- 1 байт = 8 бит.
- Размер файлов измеряют в байтах (КБ, МБ, ГБ) – это про ёмкость.
- Скорость интернета измеряют в битах (Кбит/с, Мбит/с) – это про скорость передачи.
- Чтобы из мегабит получить мегабайты, разделите на 8.
- Жёсткий диск на 1 ТБ показывает в Windows 931 ГБ – это не обман, а разница между десятичными (производитель) и двоичными (компьютер) единицами.
- UTF-8 победил: латиница = 1 байт, кириллица = 2 байта, эмодзи = 4 байта.
- Кракозябры – это когда программа перепутала кодировку.
Как не купить флешку, которая «меньше, чем обещали» (и не злиться)
Вы пришли в магазин. Видите флешку «64 ГБ». Покупаете. Вставляете в компьютер – а там всего «59,6 ГБ». Куда пропали 4,4 ГБ?
Ответ: Никуда. Просто:
- Производитель считает: 1 ГБ = 1 000 000 000 байт (десятичные гигабайты). Поэтому 64 × 1 000 000 000 = 64 000 000 000 байт.
- Windows считает: 1 ГБ (а точнее, 1 ГиБ) = 1 073 741 824 байта. Делим 64 000 000 000 на 1 073 741 824 = 59,6 ГБ.
Что делать:
- Не паниковать. Это нормально для всех накопителей.
- Вычитать 7-8% от заявленного объёма, чтобы получить реальный (например, флешка на 128 ГБ → около 119 ГБ).
- Не пытайтесь «вернуть пропавшие гигабайты» – их не украли, это математика.
Как выбрать интернет-тариф и не переплачивать
Ситуация:
Провайдер предлагает 300 Мбит/с за 1000 рублей, а соседний – 500 Мбит/с за 1200 рублей. Кажется, 500 за 1200 – выгоднее. Но давайте посчитаем, что вы получите на практике.
Шаг 1. Переводим в мегабайты:
- 300 Мбит/с ÷ 8 = 37,5 МБ/с (теоретический максимум)
- 500 Мбит/с ÷ 8 = 62,5 МБ/с
Шаг 2. Оцениваем свои реальные потребности:
- Для YouTube 4K хватит 25-35 Мбит/с (~3-4 МБ/с).
- Для онлайн-игр (CS, Dota, Fortnite) важно не столько число, сколько стабильность и низкая задержка (ping). 50-100 Мбит/с с запасом.
- Для скачивания фильмов и игр: чем больше, тем лучше. Но если вы качаете игру 100 ГБ:
- На 300 Мбит/с (37,5 МБ/с) → 100 000 МБ ÷ 37,5 ≈ 2667 секунд = 44 минуты.
- На 500 Мбит/с (62,5 МБ/с) → 100 000 ÷ 62,5 ≈ 1600 секунд = 27 минут.
Вопрос к вам: вы готовы платить на 20% больше, чтобы сэкономить 17 минут при скачивании игры раз в неделю? Если да – берите 500. Если нет – 300 более чем достаточно.
Шаг 3. Не забывайте про своё оборудование:
Если ваш роутер старый и поддерживает максимум 100 Мбит/с (по проводу или Wi-Fi), то тариф на 500 Мбит/с вам не нужен – вы всё равно не получите больше 100. Сначала обновите роутер до гигабитного.
Как не запутаться в размерах файлов и накопителей (шпаргалка для покупок)
|
Что покупаете |
Написано на коробке |
Увидите в компьютере |
Почему |
|
Флешка |
16 ГБ |
~14,9 ГБ |
16 × (10⁹/2³⁰) |
|
Флешка |
32 ГБ |
~29,8 ГБ |
|
|
Флешка |
64 ГБ |
~59,6 ГБ |
|
|
Жёсткий диск |
1 ТБ |
~931 ГБ |
1 × (10¹²/2⁴⁰) |
|
Жёсткий диск |
2 ТБ |
~1,81 ТБ |
|
|
Жёсткий диск |
4 ТБ |
~3,63 ТБ |
|
|
SSD |
500 ГБ |
~465 ГБ |
|
Простое правило:
- Для флешек и дисков объёмом до 1 ТБ: отнимите примерно 7% от написанного.
- Для объёмов 1 ТБ и выше: отнимите 7% от первого терабайта и так далее.
- Или просто запомните: в компьютере всегда будет меньше, чем на коробке. Это нормально.
Биты в реальной жизни.
Вы встречаетесь с битами и байтами каждый день, даже не замечая этого.
Качество звука (битрейт).
- MP3-файл с битрейтом 128 kbps (килобит в секунду) – среднее качество. 320 kbps – лучше. «Битрейт» показывает, сколько битов информации тратится на одну секунду звука. Чем выше – тем лучший звук, но тем тяжелее файл.
Глубина цвета (битность).
- 1 бит на пиксель – чёрно-белое изображение (либо чёрный, либо белый).
- 8 бит на пиксель – 256 цветов (старые GIF-картинки).
- 24 бита на пиксель (8 бит на красный, 8 на зелёный, 8 на синий) – 16,7 миллионов цветов (стандарт для фотографий).
- 32 бита – 24 бита цвета + 8 бит прозрачности (альфа-канал).
Характеристики видеокарт (ширина шины).
- 128-битная шина памяти, 192-битная, 256-битная, 384-битная, 512-битная. Это количество битов, которое видеокарта может передать за один такт. Чем шире – тем быстрее обмен данными с видеопамятью.
Консоли и ретро-компьютеры.
- Nintendo Entertainment System (NES, 1983) – 8-битный процессор.
- Sega Genesis (Mega Drive, 1988) – 16-битный.
- Sony PlayStation (1994) – 32-битный.
- Nintendo 64 (1996) – 64-битный.
Эти цифры – разрядность процессора, то есть сколько битов он может обработать за один такт.
Финальная мысль: от выключателя до космического корабля
Мы начали с простого: бит – это «0» или «1», «включено» или «выключено». Этого казалось смехотворно мало. Но миллиарды таких переключателей, объединённые в байты, слова, файлы и программы, создают всё цифровое разнообразие вокруг нас.
- Фотография вашего кота – это 10 миллионов битов, каждый из которых решает, какой цвет и яркость имеет один пиксель.
- Песня в наушниках – это 100 миллионов битов, кодирующих колебания воздуха.
- Фильм на вечер – это 40 миллиардов битов, складывающихся в картинку и звук.
- Операционная система – это 30 миллиардов битов команд, которые говорят компьютеру, что делать.
И всё это работает благодаря тому, что кто-то когда-то решил: «Давайте договоримся: 8 битов – это байт, а байты умеют складываться в килобайты, мегабайты и гигабайты».
Теперь этот договор знаете и вы!
Список литературы и источников
- Таненбаум Э., Бос Х.
Современные операционные системы. – 4-е изд. – СПб.: Питер, 2019. – 1120 с.
Классический учебник. Главы про память, файловые системы и кодирование информации — обязательны к прочтению. - Таненбаум Э., Остин Т.
Архитектура компьютера. – 6-е изд. – СПб.: Питер, 2013. – 816 с.
Здесь подробно разбирается, как процессор работает с битами и байтами, что такое разрядность и системы счисления. - Седжвик Р., Уэйн К.
Программирование. Компьютерная наука. Базовые структуры данных и алгоритмов. – М.: Диалектика, 2017. – 736 с.
Первые главы посвящены представлению информации в компьютере, двоичной системе и кодированию. - Пьюз И., Фриман Дж.
Хранение информации. От наскальных рисунков до облачных технологий. (Оригинал: The Information: A History, a Theory, a Flood – James Gleick, но Пьюз и Фриман дают хороший обзор). – На русском: Глик Дж. Информация. История. Теория. Поток. – М.: Corpus, 2018. – 576 с.
Отличная книга про историю информации от телеграфа до битов. - Cerf V., Kahn R.
A Protocol for Packet Network Intercommunication. – IEEE Transactions on Communications, 1974. (Историческая статья о протоколах, где биты и байты стали основой интернета). - История IBM System/360
*IBM System/360 Announcement.* April 7, 1964.
*Документы IBM о рождении 8-битного байта как стандарта.*
Доступно в открытых архивах IBM. - Unicode Consortium.
The Unicode Standard. Version 15.0. – Mountain View, CA: Unicode Consortium, 2022.
Официальная спецификация. Именно здесь прописано, какой у какого символа код. - Юникод онлайн (Unicode Character Table)
https://unicode-table.com/ru/
Интерактивная таблица всех символов Юникода с кодами. Удобно проверять, сколько байтов занимает тот или иной знак. - UTF-8 Everywhere Manifesto
https://utf8everywhere.org/ (на английском)
*Манифест о том, почему UTF-8 – лучшая кодировка для всего. Есть переводы на русский в блогах.* - What is a byte? (Computer Hope)
https://www.computerhope.com/jargon/b/byte.htm
*Доступное объяснение истории байта и различных размеров (6-битные, 7-битные, 9-битные системы).* - ISO/IEC 80000-13:2008
Международный стандарт, в котором официально введены двоичные приставки (киби, меби, гиби).
Доступен через сайт ISO. - ГОСТ 8.417-2002 (Государственная система обеспечения единства измерений)
Единицы величин. – Российский стандарт, где упоминаются биты и байты как единицы измерения количества информации. - Microsoft Docs: File System Functionality Comparison
https://docs.microsoft.com/ – Поиск по "FAT32, NTFS, exFAT".
Объяснение, почему разные файловые системы по-разному трактуют размер кластеров и объёмы дисков. - Wi-Fi Alliance: Understanding Wi-Fi Speeds
*https://www.wi-fi.org/ – раздел "Discover Wi-Fi".
Почему скорость Wi-Fi указывается в мегабитах, а не мегабайтах. - Статья-расследование: "Почему жёсткий диск показывает меньше, чем написано"
Habr.com – поиск по запросу "почему диск меньше терабайта". Множество статей с разбором двоичных и десятичных приставок. - Shannon C. E. (1937)
A Symbolic Analysis of Relay and Switching Circuits. – Master's thesis, MIT.
Та самая диссертация Клода Шеннона, которая породила цифровую логику. Доступна в архиве MIT. - Atanasoff J. V. (1940)
Computing Machine for the Solution of Large Systems of Linear Algebraic Equations. – Iowa State College.
Описание первого электронного двоичного компьютера ABC. - Von Neumann J. (1945)
First Draft of a Report on the EDVAC. – University of Pennsylvania.
Архитектура фон Неймана, где двоичная система стала основой для всех современных компьютеров.
БЕСПЛАТНЫЕ вебинары

