Сколько Байт (B) в 8 Битах (b)?
Конвертер величин измерения объема информации онлайн поможет с легкостью перевести 8 (восемь) Бит в Байты. Чтобы конвертировать другое значение из Бит в Байты, просто введите его в соответствующее поле и нажмите кнопку «Рассчитать».
Сколько Байт (B) в 8 Битах (b)?
Другие конвертации
Инструмент для конвертации величин объема информации
Конвертирование объема информации может быть полезным при работе с сетевыми технологиями, хранении данных, передаче файлов и других сферах, где необходимо оперировать разными единицами измерения. Наш инструмент обеспечивает точные и надежные результаты, помогая вам справиться с задачами, связанными с объемом информации.
Используйте наш конвертер объема информации для быстрой и удобной конвертации значений. Просто выберите начальную единицу измерения и желаемую конечную единицу, введите значение, которое вы хотите конвертировать, и нажмите на кнопку «Конвертировать». Наш инструмент мгновенно выполнит расчет и покажет вам точный результат.
Вопросы и ответы
Какой формат величин объема информации поддерживается вашим инструментом?
Как использовать инструмент?
Почему важно уметь конвертировать величины объема информации?
Какая единица измерения является наиболее распространенной для объема информации?
Как можно легко запомнить соотношение между различными единицами объема информации?
Рекомендуем посмотреть
Двоичный код
Данный инструмент — это дешифровщик текста в двоичном (бинарном) коде, то есть представленного в виде нулей и единиц. Также можно зашифровать текст из двоичного кода.
Конвертер температур
Данный инструмент конвертирует заданную единицу измерения температуры в другую. Для конвертации доступны: Градусы Цельсия, Градусы Фаренгейта и Кельвины. Просто введите значение, которое хотите перевести, выберите доступные величины измерения времени и нажмите кнопку «Рассчитать».
Конвертер веса и массы
Наш онлайн конвертер веса и массы позволяет легко переводить между миллиграммами, граммами, килограммами, центнерами, тоннами, фунтами, унциями и каратами. Просто введите значение, которое нужно конвертировать, выберите единицу измерения и нажмите «конвертировать». Результаты будут показаны мгновенно.
Конвертер дат
Данный инструмент конвертирует заданную единицу времени в другую. Для конвертации доступны: секунды, минуты, часы, дни, недели, месяцы и года. Просто введите значение, которое хотите перевести, выберите доступные величины измерения времени и нажмите кнопку «Рассчитать».
Конвертер длин
Наш онлайн Конвертер длин позволяет легко и быстро переводить значения длинны и расстояния между различными системами измерения. Просто введите значение, выберите единицу измерения и получите результат в необходимой вам системе измерения.
Base64
Добро пожаловать в наш онлайн инструмент для работы с Base64 кодировкой. Здесь вы можете легко перевести свой текст в Base64 и обратно без лишних усилий. Наш инструмент поддерживает как ASCII, так и utf-8 кодировки текста, что позволяет работать с различными типами символов и языками. Упростите процесс обработки данных и удобно конвертируйте текст прямо здесь
Почему в байте именно 8 бит?
Я опубликовала в интернет-журнале статью на тему двоичного представления информации компьютерами и, среди прочих, неоднократно получала вопрос: «Почему в архитектуре x86 используются байты, состоящие именно из 8 бит, а не иного их количества?»
Я считаю, что на любой подобный вопрос можно дать два основных ответа и некую их комбинацию:
- Так сложилось исторически, и другой размер (например, 4, 6 или 16 бит) тоже вполне сработает.
- Восемь бит по какой-то причине является лучшим вариантом, и даже если бы история сложилась иначе, мы бы всё равно использовали именно 8-битные байты.
- Некая комбинация этих двух версий.
Приведу пример исторической случайности: в DNS есть поле class , которое может содержать одно из пяти значений – internet , chaos , hesiod , none и any ). Для меня это явный пример исторической случайности – не могу представить себе, чтобы мы, воссоздавая это поле сегодня, определили его таким же образом, не беспокоясь об обратной совместимости. Не уверена, что мы бы вообще стали использовать поле класса.
В этой статье не приводятся однозначные объяснения, но я задала вопрос на Mastodon, и собрала из полученных ответов несколько возможных причин 8-битного размера байта. Думаю, что ответ представляет некое сочетание этих причин.
▍ В чём отличие между байтом и словом?
Начну с того, что в этой статье будут активно обсуждаться байты и слова. В чём же отличие между ними? Вот моё понимание этого вопроса:
- Размер байта представляет минимальную единицу данных, которую можно адресовать. Например, в программе на моей машине 0x20aa87c68 может быть адресом одного байта, а значит 0x20aa87c69 будет адресом следующего байта.
- Размер слова является кратным размеру байта. Для меня это оставалось непонятным долгие годы, причём в Wikipedia этому даётся весьма туманное определение («слово – это естественная единица данных, используемая в конкретной архитектуре процессора»). Изначально я думала, что размер слова равен размеру регистра (64 бита на x86-64). Но, согласно разделу 4.1 («Fundamental Data Types») мануала по архитектурам Intel, в системах x86 слово имеет размер 16 бит при том, что размер регистров 64 бита. Это сбивает с толку. Какой всё-таки размер слова в системах x86 – 16 или 64 бита? Может ли это зависеть от контекста?
▍ Причина 1: чтобы любой символ английского алфавита вписывался в 1 байт
Статья на Wikipedia гласит, что 8-битный байт впервые начал использоваться в IBM System/360 в 1964 году.
Вот видео интервью с Фредом Бруксом (руководителем проекта), в котором обсуждается причина этого. Вот часть его содержания:
Идея о том, что 8-битный байт больше подходит для обработки текста, вполне логична: 2^6 равно 64, значит 6 бит оказалось бы недостаточно для букв нижнего/верхнего регистра и символов.
Для перехода на использование 8-битного байта в System/360 также была реализована кодировка 8-битных символов EBCDIC.
Похоже, что следующим значительным шагом в истории 8-битного байта стал процессор Intel 8008, который создавался для использования в терминале Datapoint 2200. Терминалам необходима возможность представлять буквы, а также управляющие коды, поэтому в них есть смысл использовать 8-битные байты. В руководстве к Datapoint 2200 из музея компьютерной истории на странице 7 сказано, что эта модель поддерживала кодировки ASCII (7 бит) и EBCDIC (8 бит).
▍ Почему 6-битный байт лучше подходит для научных вычислений?
Меня заинтересовал комментарий о том, что 6-битный байт оказался бы более подходящим для научных вычислений. Вот цитата из интервью с Джином Амдалем:
Мне это рассуждение совсем непонятно – почему при использовании 32-битного слова возведение числа в степень должно быть 8-битным? Почему нельзя использовать 9 или 10 бит? Но это всё, что мне удалось найти в результате недолгого поиска.
▍ Почему в мейнфреймах использовалось 36 бит?
Это также связано с 6-битным байтом: во многих мейнфреймах использовались 36-битные слова. Почему? Кто-то указал на прекрасное объяснение в статье Wikipedia, посвящённой 36-битному вычислению:
До появления компьютеров эталоном в точных научных и инженерных вычислениях был 10-циферный электромеханический калькулятор… В этих калькуляторах для каждой цифры присутствовал ряд клавиш, и операторы обучались использовать для ввода чисел все десять пальцев, поэтому, хоть в некоторых специализированных калькуляторах и было больше рядов, десять являлось практичным ограничением.
В связи с этим в первых двоичных компьютерах, нацеленных на тот же рынок, использовались 36-битные слова. Этой длины было достаточно для представления положительных и отрицательных целых чисел с точностью до десяти десятичных цифр (35 бит оказалось бы минимумом).
Получается, что поводом для использования 36 бит стал тот факт, что log_2(20000000000) равен 34.2.
Я предполагаю, что причина тому лежит где-то в 50-х годах – тогда компьютеры были невероятной роскошью. Поэтому, если вам требовалось, чтобы устройство поддерживало десять цифр, его нужно было спроектировать с поддержкой ровно достаточного для этого числа бит и не более.
Сегодня компьютеры стали быстрее и дешевле, поэтому, если вам по какой-то причине нужно представить десять цифр, то вы можете просто использовать 64 бита – потеря некоторого пространства памяти вряд ли станет проблемой.
Кто-то другой писал, что некоторые из этих машин с 36-битными словами позволяли выбирать размер байта – в зависимости от контекста можно было использовать 5, 6, 7 или 8-битные байты.
▍ Причина 2: для эффективной работы с десятичными значениями в двоичной кодировке
В 60-е годы существовала популярная кодировка целых чисел под названием BCD (binary-coded decimal), которая кодировала каждую цифру в 4 бита. Например, если бы вам понадобилось закодировать 1234, то в BCD это бы выглядело так:
Поэтому в целях удобства работы с закодированным в двоичную форму десятичным значением размер байта должен был быть кратным 4 битам – например, 8 бит.
▍ Почему BCD была популярна?
Такое представление целых чисел мне показалось реально странным – почему бы не использовать двоичную форму, которая позволяет намного более эффективно хранить целые числа? Ведь эффективность в первых компьютерах была крайне важна.
Лично я склоняюсь к тому, что причина заключалась в специфике дисплеев первых компьютеров, на которых содержимое байта отображалось непосредственно в состояние лампочек – вкл/выкл.
Поэтому, если мы хотим, чтобы человеку было относительно удобно прочитывать десятичное число из его двоичного представления, то такой вариант будет намного более разумным. Я думаю, что сегодня кодировка BCD уже неактуальна, потому что у нас есть мониторы, и наши компьютеры умеют автоматически конвертировать числа из двоичной формы в десятичную, отображая итоговый результат.
Мне также было интересно, не из BCD ли родился термин «nibble» (полубайт), означающий 4 бита – в контексте BCD вы много обращаетесь к полубайтам (поскольку каждая цифра занимает 4 бита), поэтому есть смысл использовать слово для «4 бит», которые люди и прозвали «nibble». Сегодня для меня этот термин уже выглядит архаичным – если я его когда-то и использовала, то только смеха ради (оно такое забавное). Причём эта теория подтверждается статьёй в Wikipedia:
В качестве ещё одной причины использования BCD кто-то назвал финансовые вычисления. Сегодня, если вам нужно сохранить какое-то количество долларов, то вы обычно просто используете целочисленное значение в центах и делите это значение на 100, если хотите получить его долларовую часть. Это несложно, деление выполняется быстро. Но в 70-х деление на 100 целого числа, представленного в двоичном формате, явно выполнялось очень медленно, поэтому был смысл перестроить систему представления целых чисел во избежание деления на 100.
Ладно, хватит о BCD.
▍ Причина 3: 8 – это степень 2
Многие люди указали на важность того, чтобы размер байта был равен степени 2. Я не могу выяснить, правда это или нет, и меня не удовлетворило объяснение, что «компьютеры используют двоичную систему счисления, поэтому степень двойки подойдёт лучше всего». Это утверждение выглядит весьма правдоподобным, но мне хотелось разобраться глубже. За всю историю определённо было множество машин, в которых использовались байты с размером, не являющимся степенью 2. Вот несколько примеров, взятых из темы о ретрокомпьютерах со Stack Exchange:
- в мейнфреймах Cyber 180 использовались 6-битные байты;
- в серии Univac 1100 / 2200 использовались 36-битные слова;
- PDP-8 был 12-битным компьютером.
- каждому биту в слове требуется линия шины, а количество линий должно быть кратно 2 (почему?);
- значительная часть логики электросхем предрасположена к техникам «разделяй и властвуй» (мне нужен пример для понимания этого утверждения).
- Это упрощает проектирование делителей частоты, способных измерять «отправку 8 бит по такому-то каналу» и работающих на основе деления пополам – можно установить 3 таких делителя последовательно. Грэхем Сазерленд рассказал мне об этом и создал классный симулятор делителей частоты, демонстрирующий их устройство. На том же сайте (Falstad) есть и много других примеров схем, и он отлично подходит для создания различных симуляторов.
- Если у вас есть инструкция, обнуляющая конкретный бит в байте, то при размере байта 8 (2^3) вы можете использовать всего три бита этой инструкции для указания, какой это бит. В системах x86 такой возможности нет, зато она есть у инструкций тестирования битов в Z80.
- Кто-то также сказал, что в некоторых процессорах используются сумматоры с опережением переноса, которые работают с группами по 4 бита. Недолгий поиск в Google показал, что существует большое разнообразие схем сумматоров.
- Битовые карты: память вашего компьютера организована по страницам (обычно размером 2^n). При этом компьютеру необходимо отслеживать каждую страницу на предмет того, свободна она или нет. Для этого в операционных системах используются битовые карты, в которых каждый бит соответствует странице и равен 0 или 1 в зависимости от того, свободна ли она. Если бы в компьютере использовался 9-битный байт, то для нахождения нужной страницы в битовой карте пришлось бы делить на 9. Деление на 9 медленнее деления на 8, потому что деление на степени 2 всегда является самым быстрым.
▍ Причина 4: небольшой размер байта – это хорошо
Вы можете поинтересоваться: «Если 8-битные байты оказались лучше 4-битных, почему бы не продолжить увеличивать их размер? Можно же использовать 16-битные!»
Вот пара причин для сохранения небольшого размера байта:
- Это приведёт к пустой трате пространства – байт является минимальной адресуемой единицей, и если компьютер хранит много текста в кодировке ASCII (которой требуется всего 7 бит), то выделение для каждого символа не 8, а 12 или 16 бит приведёт к значительным потерям памяти.
- Если размер байта увеличивается, то и система процессора должна усложняться. К примеру, вам требуется по одной линии шины на бит. Так что, думаю, чем проще, тем лучше.
▍ Причина 5: совместимость
Процессор Intel 8008 (1972 год) был предшественником модели 8080 (1974 год), которая предшествовала 8086 (1976 год) – первому процессору семейства x86. Похоже, что 8080 и 8086 были очень популярны, и именно с них пошли все современные компьютеры x86.
Думаю, здесь уместен принцип «не чини того, что не сломано» – мне кажется, что 8-битные байты отлично работали, поэтому в Intel не увидели необходимости менять их размер. Сохранение 8-битного байта позволяет повторно использовать более обширную часть набора инструкций.
К тому же, в 80-х начали появляться сетевые протоколы вроде TCP, в которых использовались 8-битные байты (обычно называемые «октеты»), и если вы соберётесь реализовать сетевые протоколы, то наверняка решите использовать в них 8-битный байт.
На мой взгляд, основные причины, по которым байт состоит из 8 бит, следующие:
Таблица соотношения битов, байтов, килобайтов, мегабайтов. Как составить?
Какую можно сделать наглядную таблицу для перевода одной единицы измерения информации в другую (бит, байт, килобайт, мегабайт, гигабайт, терабайт, петабайт)?
Для измерения объема информации существуют специальные единицы измерения – байты, биты.
Бит – минимальная единица измерения информации. При двоичной системе счисления бит соответствует 1 двоичной цифре.
Байт состоит из 8 бит.
Для запоминания и перевода байтов в биты, гигабайты, мегабайты можно пользоваться таблицами. Они представлены ниже.
Самыми маленькими единицами измерения количества информации являются биты и байты.
Думаю, все помнят, что в 1 байте содержится 8 бит.
Килобайты, мегабайты, гигабайты и т.д. — это единицы, являющееся производными от байта.
Они образуются с помощью специальных приставок ("кило", "мега", "гига" и т.д.), и каждая последующая единица равна произведению предыдущей на 2 в степени 10.
То есть в 1 килобайте будет 2^10 = 1024 байта, в 1 мегабайте будет 2^10 = 1024 килобайта и т.д.
Таблицу битов, байтов, килобайтов, мегабайтов, гигабайтов, терабайтов, петабайтов можно составить такую:
Допустим, как посмотреть в этой таблице соотношение гигабайта с другими единицами измерения информации?
Находим столбец с заголовком "1 Гигабайт", а затем берём строку с нужной единицей.
На их пересечении будет соответствующая цифра.
То есть 1 Гигабайт — это 2^30 байтов, 2^20 килобайтов, 2^10 мегабайтов.
Стоит отметить, что биты обычно соотносят не с производными байта, а с производныими бита — килобиты, мегабиты, гигабиты и т.д.
Но смысл здесь тот же самый: килобит — это 2^10 бит, мегабит — это 2^20 бит и т.д.
Также приведу схему, где наглядно отображено, как переводить из одних единиц измерения информации в другие.
Возьмём для примера мегабайты.
1 мегабайт > 1 килобайта, поэтому для перевода мегабайтов в килобайты нужно количество мегабайт умножить на 2^10 (или 1024).
Например, 10 мегабайт — это 10 * 1024 = 10240 килобайта.
1 мегабайт < 1 гигабайта, поэтому для перевода мегабайтов в гигабайты нужно количество мегабайт разделись на 2^10 (или 1024).
Например, 100 мегабайт — это 100 / 1024 = 0,098 гигабайт.
Итак, для измерения длины есть различные единицы : миллиметр, сантиметр, метр и т.п.Наш же компьютер работает непосредственно с самой информацией и как раз таки для измерения ее объема также имеются соответствующие единицы измерения : байты, килобайты, мегабайты и так далее.Соотношение этих единиц измерения приведены в таблице ниже. Цепочка имеет закономерную последовательность и оборачиваемость, что позволяет более структурировано запомнить школьнику или студенту в своей голове.Минимальной единицей в нашей табличке — это бит, а наибольшая — это эксабайт.Я полагаю, что это не все единицы измерения, но здесь приведены самые часто используемые в информатике.
Составить таблицу соотношения величин не сложно, для этого нужно понимать, что 1 байт равен 8 битам и так далее.
Каждая следующая еденица будет равно десятой степени предыдущей.
Составим таблицу. В столбик слева напишем все необходимое нам показатели :байт, бит, килобайт, мегабайт, гигобайт, терабайт и петабайт. В верхней строке, начиная со второй, напишем все указанные ранее показатели, только добавим еденицу измерения один. Получим 1 бит, 1 байт и т. д. Пересечение этих значений в таблице и будет ответом на вопрос. Например, 1 килобайт равен 2 битам в тринадцатой степени или 2 еденицам байтов в десятой степени.
При знании мер и сколько они составляют по отношению друг к другу вы сможете составить таблицу соотношения мер измерения информации. Мой колега указывал таблицу выше и я с ней соглашаюсь:
Здесь действительно есть условное обозначение единиц информации, являющихся основными и используются в информатике.
Это — таблица инженерного характера:
Смотри, есть такая крохотная штука — бит. Она как малюсенький кирпичик, из которого потом складываются все остальные единицы. Восемь таких крохотулек складываются в байт. Это уже целый кирпичик информации.
Дальше начинается самое интересное. Берёшь 1024 байта — и у тебя получается килобайт. Это уже приличная кирпичная стенка. Но на этом мы не останавливаемся. Складываешь 1024 килобайтов — бац, получился мегабайт! Это как целый дом из кирпичей информации.
Запомнил? Теперь собираем дома в кварталы. 1024 мегабайта — и ты стал обладателем гигабайта! Это уже огромный информационный квартал.
Хочешь построить информационный район? Складываешь 1024 гигабайта и получаешь терабайт. А если сложишь 1024 терабайта — то перед тобой терабайт — целый информационный город!
В общем, как видишь, принцип простой — каждая следующая единица в 1024 раз больше предыдущей.
Бит в Байт
Конвертировать из Бит в Байт. Введите сумму, которую вы хотите конвертировать и нажмите кнопку конвертировать (↻) .
1 Бит = 0.125 Байт | 10 Бит = 1.25 Байт | 2500 Бит = 312.5 Байт |
2 Бит = 0.25 Байт | 20 Бит = 2.5 Байт | 5000 Бит = 625 Байт |
3 Бит = 0.375 Байт | 30 Бит = 3.75 Байт | 10000 Бит = 1250 Байт |
4 Бит = 0.5 Байт | 40 Бит = 5 Байт | 25000 Бит = 3125 Байт |
5 Бит = 0.625 Байт | 50 Бит = 6.25 Байт | 50000 Бит = 6250 Байт |
6 Бит = 0.75 Байт | 100 Бит = 12.5 Байт | 100000 Бит = 12500 Байт |
7 Бит = 0.875 Байт | 250 Бит = 31.25 Байт | 250000 Бит = 31250 Байт |
8 Бит = 1 Байт | 500 Бит = 62.5 Байт | 500000 Бит = 62500 Байт |
9 Бит = 1.125 Байт | 1000 Бит = 125 Байт | 1000000 Бит = 125000 Байт |
Встроить этот конвертер вашу страницу или в блог, скопировав следующий код HTML:
Таблица соотношения битов, байтов, килобайтов, мегабайтов. Как составить?
Какую можно сделать наглядную таблицу для перевода одной единицы измерения информации в другую (бит, байт, килобайт, мегабайт, гигабайт, терабайт, петабайт)?
Для измерения объема информации существуют специальные единицы измерения – байты, биты.
Бит – минимальная единица измерения информации. При двоичной системе счисления бит соответствует 1 двоичной цифре.
Байт состоит из 8 бит.
Для запоминания и перевода байтов в биты, гигабайты, мегабайты можно пользоваться таблицами. Они представлены ниже.
Самыми маленькими единицами измерения количества информации являются биты и байты.
Думаю, все помнят, что в 1 байте содержится 8 бит.
Килобайты, мегабайты, гигабайты и т.д. — это единицы, являющееся производными от байта.
Они образуются с помощью специальных приставок ("кило", "мега", "гига" и т.д.), и каждая последующая единица равна произведению предыдущей на 2 в степени 10.
То есть в 1 килобайте будет 2^10 = 1024 байта, в 1 мегабайте будет 2^10 = 1024 килобайта и т.д.
Таблицу битов, байтов, килобайтов, мегабайтов, гигабайтов, терабайтов, петабайтов можно составить такую:
Допустим, как посмотреть в этой таблице соотношение гигабайта с другими единицами измерения информации?
Находим столбец с заголовком "1 Гигабайт", а затем берём строку с нужной единицей.
На их пересечении будет соответствующая цифра.
То есть 1 Гигабайт — это 2^30 байтов, 2^20 килобайтов, 2^10 мегабайтов.
Стоит отметить, что биты обычно соотносят не с производными байта, а с производныими бита — килобиты, мегабиты, гигабиты и т.д.
Но смысл здесь тот же самый: килобит — это 2^10 бит, мегабит — это 2^20 бит и т.д.
Также приведу схему, где наглядно отображено, как переводить из одних единиц измерения информации в другие.
Возьмём для примера мегабайты.
1 мегабайт > 1 килобайта, поэтому для перевода мегабайтов в килобайты нужно количество мегабайт умножить на 2^10 (или 1024).
Например, 10 мегабайт — это 10 * 1024 = 10240 килобайта.
1 мегабайт < 1 гигабайта, поэтому для перевода мегабайтов в гигабайты нужно количество мегабайт разделись на 2^10 (или 1024).
Например, 100 мегабайт — это 100 / 1024 = 0,098 гигабайт.
Итак, для измерения длины есть различные единицы : миллиметр, сантиметр, метр и т.п.Наш же компьютер работает непосредственно с самой информацией и как раз таки для измерения ее объема также имеются соответствующие единицы измерения : байты, килобайты, мегабайты и так далее.Соотношение этих единиц измерения приведены в таблице ниже. Цепочка имеет закономерную последовательность и оборачиваемость, что позволяет более структурировано запомнить школьнику или студенту в своей голове.Минимальной единицей в нашей табличке — это бит, а наибольшая — это эксабайт.Я полагаю, что это не все единицы измерения, но здесь приведены самые часто используемые в информатике.
Составить таблицу соотношения величин не сложно, для этого нужно понимать, что 1 байт равен 8 битам и так далее.
Каждая следующая еденица будет равно десятой степени предыдущей.
Составим таблицу. В столбик слева напишем все необходимое нам показатели :байт, бит, килобайт, мегабайт, гигобайт, терабайт и петабайт. В верхней строке, начиная со второй, напишем все указанные ранее показатели, только добавим еденицу измерения один. Получим 1 бит, 1 байт и т. д. Пересечение этих значений в таблице и будет ответом на вопрос. Например, 1 килобайт равен 2 битам в тринадцатой степени или 2 еденицам байтов в десятой степени.
При знании мер и сколько они составляют по отношению друг к другу вы сможете составить таблицу соотношения мер измерения информации. Мой колега указывал таблицу выше и я с ней соглашаюсь:
Здесь действительно есть условное обозначение единиц информации, являющихся основными и используются в информатике.
Это — таблица инженерного характера:
Смотри, есть такая крохотная штука — бит. Она как малюсенький кирпичик, из которого потом складываются все остальные единицы. Восемь таких крохотулек складываются в байт. Это уже целый кирпичик информации.
Дальше начинается самое интересное. Берёшь 1024 байта — и у тебя получается килобайт. Это уже приличная кирпичная стенка. Но на этом мы не останавливаемся. Складываешь 1024 килобайтов — бац, получился мегабайт! Это как целый дом из кирпичей информации.
Запомнил? Теперь собираем дома в кварталы. 1024 мегабайта — и ты стал обладателем гигабайта! Это уже огромный информационный квартал.
Хочешь построить информационный район? Складываешь 1024 гигабайта и получаешь терабайт. А если сложишь 1024 терабайта — то перед тобой терабайт — целый информационный город!
В общем, как видишь, принцип простой — каждая следующая единица в 1024 раз больше предыдущей.
Почему в байте именно 8 бит?
Я опубликовала в интернет-журнале статью на тему двоичного представления информации компьютерами и, среди прочих, неоднократно получала вопрос: «Почему в архитектуре x86 используются байты, состоящие именно из 8 бит, а не иного их количества?»
Я считаю, что на любой подобный вопрос можно дать два основных ответа и некую их комбинацию:
- Так сложилось исторически, и другой размер (например, 4, 6 или 16 бит) тоже вполне сработает.
- Восемь бит по какой-то причине является лучшим вариантом, и даже если бы история сложилась иначе, мы бы всё равно использовали именно 8-битные байты.
- Некая комбинация этих двух версий.
Приведу пример исторической случайности: в DNS есть поле class , которое может содержать одно из пяти значений – internet , chaos , hesiod , none и any ). Для меня это явный пример исторической случайности – не могу представить себе, чтобы мы, воссоздавая это поле сегодня, определили его таким же образом, не беспокоясь об обратной совместимости. Не уверена, что мы бы вообще стали использовать поле класса.
В этой статье не приводятся однозначные объяснения, но я задала вопрос на Mastodon, и собрала из полученных ответов несколько возможных причин 8-битного размера байта. Думаю, что ответ представляет некое сочетание этих причин.
▍ В чём отличие между байтом и словом?
Начну с того, что в этой статье будут активно обсуждаться байты и слова. В чём же отличие между ними? Вот моё понимание этого вопроса:
- Размер байта представляет минимальную единицу данных, которую можно адресовать. Например, в программе на моей машине 0x20aa87c68 может быть адресом одного байта, а значит 0x20aa87c69 будет адресом следующего байта.
- Размер слова является кратным размеру байта. Для меня это оставалось непонятным долгие годы, причём в Wikipedia этому даётся весьма туманное определение («слово – это естественная единица данных, используемая в конкретной архитектуре процессора»). Изначально я думала, что размер слова равен размеру регистра (64 бита на x86-64). Но, согласно разделу 4.1 («Fundamental Data Types») мануала по архитектурам Intel, в системах x86 слово имеет размер 16 бит при том, что размер регистров 64 бита. Это сбивает с толку. Какой всё-таки размер слова в системах x86 – 16 или 64 бита? Может ли это зависеть от контекста?
▍ Причина 1: чтобы любой символ английского алфавита вписывался в 1 байт
Статья на Wikipedia гласит, что 8-битный байт впервые начал использоваться в IBM System/360 в 1964 году.
Вот видео интервью с Фредом Бруксом (руководителем проекта), в котором обсуждается причина этого. Вот часть его содержания:
Идея о том, что 8-битный байт больше подходит для обработки текста, вполне логична: 2^6 равно 64, значит 6 бит оказалось бы недостаточно для букв нижнего/верхнего регистра и символов.
Для перехода на использование 8-битного байта в System/360 также была реализована кодировка 8-битных символов EBCDIC.
Похоже, что следующим значительным шагом в истории 8-битного байта стал процессор Intel 8008, который создавался для использования в терминале Datapoint 2200. Терминалам необходима возможность представлять буквы, а также управляющие коды, поэтому в них есть смысл использовать 8-битные байты. В руководстве к Datapoint 2200 из музея компьютерной истории на странице 7 сказано, что эта модель поддерживала кодировки ASCII (7 бит) и EBCDIC (8 бит).
▍ Почему 6-битный байт лучше подходит для научных вычислений?
Меня заинтересовал комментарий о том, что 6-битный байт оказался бы более подходящим для научных вычислений. Вот цитата из интервью с Джином Амдалем:
Мне это рассуждение совсем непонятно – почему при использовании 32-битного слова возведение числа в степень должно быть 8-битным? Почему нельзя использовать 9 или 10 бит? Но это всё, что мне удалось найти в результате недолгого поиска.
▍ Почему в мейнфреймах использовалось 36 бит?
Это также связано с 6-битным байтом: во многих мейнфреймах использовались 36-битные слова. Почему? Кто-то указал на прекрасное объяснение в статье Wikipedia, посвящённой 36-битному вычислению:
До появления компьютеров эталоном в точных научных и инженерных вычислениях был 10-циферный электромеханический калькулятор… В этих калькуляторах для каждой цифры присутствовал ряд клавиш, и операторы обучались использовать для ввода чисел все десять пальцев, поэтому, хоть в некоторых специализированных калькуляторах и было больше рядов, десять являлось практичным ограничением.
В связи с этим в первых двоичных компьютерах, нацеленных на тот же рынок, использовались 36-битные слова. Этой длины было достаточно для представления положительных и отрицательных целых чисел с точностью до десяти десятичных цифр (35 бит оказалось бы минимумом).
Получается, что поводом для использования 36 бит стал тот факт, что log_2(20000000000) равен 34.2.
Я предполагаю, что причина тому лежит где-то в 50-х годах – тогда компьютеры были невероятной роскошью. Поэтому, если вам требовалось, чтобы устройство поддерживало десять цифр, его нужно было спроектировать с поддержкой ровно достаточного для этого числа бит и не более.
Сегодня компьютеры стали быстрее и дешевле, поэтому, если вам по какой-то причине нужно представить десять цифр, то вы можете просто использовать 64 бита – потеря некоторого пространства памяти вряд ли станет проблемой.
Кто-то другой писал, что некоторые из этих машин с 36-битными словами позволяли выбирать размер байта – в зависимости от контекста можно было использовать 5, 6, 7 или 8-битные байты.
▍ Причина 2: для эффективной работы с десятичными значениями в двоичной кодировке
В 60-е годы существовала популярная кодировка целых чисел под названием BCD (binary-coded decimal), которая кодировала каждую цифру в 4 бита. Например, если бы вам понадобилось закодировать 1234, то в BCD это бы выглядело так:
Поэтому в целях удобства работы с закодированным в двоичную форму десятичным значением размер байта должен был быть кратным 4 битам – например, 8 бит.
▍ Почему BCD была популярна?
Такое представление целых чисел мне показалось реально странным – почему бы не использовать двоичную форму, которая позволяет намного более эффективно хранить целые числа? Ведь эффективность в первых компьютерах была крайне важна.
Лично я склоняюсь к тому, что причина заключалась в специфике дисплеев первых компьютеров, на которых содержимое байта отображалось непосредственно в состояние лампочек – вкл/выкл.
Поэтому, если мы хотим, чтобы человеку было относительно удобно прочитывать десятичное число из его двоичного представления, то такой вариант будет намного более разумным. Я думаю, что сегодня кодировка BCD уже неактуальна, потому что у нас есть мониторы, и наши компьютеры умеют автоматически конвертировать числа из двоичной формы в десятичную, отображая итоговый результат.
Мне также было интересно, не из BCD ли родился термин «nibble» (полубайт), означающий 4 бита – в контексте BCD вы много обращаетесь к полубайтам (поскольку каждая цифра занимает 4 бита), поэтому есть смысл использовать слово для «4 бит», которые люди и прозвали «nibble». Сегодня для меня этот термин уже выглядит архаичным – если я его когда-то и использовала, то только смеха ради (оно такое забавное). Причём эта теория подтверждается статьёй в Wikipedia:
В качестве ещё одной причины использования BCD кто-то назвал финансовые вычисления. Сегодня, если вам нужно сохранить какое-то количество долларов, то вы обычно просто используете целочисленное значение в центах и делите это значение на 100, если хотите получить его долларовую часть. Это несложно, деление выполняется быстро. Но в 70-х деление на 100 целого числа, представленного в двоичном формате, явно выполнялось очень медленно, поэтому был смысл перестроить систему представления целых чисел во избежание деления на 100.
Ладно, хватит о BCD.
▍ Причина 3: 8 – это степень 2
Многие люди указали на важность того, чтобы размер байта был равен степени 2. Я не могу выяснить, правда это или нет, и меня не удовлетворило объяснение, что «компьютеры используют двоичную систему счисления, поэтому степень двойки подойдёт лучше всего». Это утверждение выглядит весьма правдоподобным, но мне хотелось разобраться глубже. За всю историю определённо было множество машин, в которых использовались байты с размером, не являющимся степенью 2. Вот несколько примеров, взятых из темы о ретрокомпьютерах со Stack Exchange:
- в мейнфреймах Cyber 180 использовались 6-битные байты;
- в серии Univac 1100 / 2200 использовались 36-битные слова;
- PDP-8 был 12-битным компьютером.
- каждому биту в слове требуется линия шины, а количество линий должно быть кратно 2 (почему?);
- значительная часть логики электросхем предрасположена к техникам «разделяй и властвуй» (мне нужен пример для понимания этого утверждения).
- Это упрощает проектирование делителей частоты, способных измерять «отправку 8 бит по такому-то каналу» и работающих на основе деления пополам – можно установить 3 таких делителя последовательно. Грэхем Сазерленд рассказал мне об этом и создал классный симулятор делителей частоты, демонстрирующий их устройство. На том же сайте (Falstad) есть и много других примеров схем, и он отлично подходит для создания различных симуляторов.
- Если у вас есть инструкция, обнуляющая конкретный бит в байте, то при размере байта 8 (2^3) вы можете использовать всего три бита этой инструкции для указания, какой это бит. В системах x86 такой возможности нет, зато она есть у инструкций тестирования битов в Z80.
- Кто-то также сказал, что в некоторых процессорах используются сумматоры с опережением переноса, которые работают с группами по 4 бита. Недолгий поиск в Google показал, что существует большое разнообразие схем сумматоров.
- Битовые карты: память вашего компьютера организована по страницам (обычно размером 2^n). При этом компьютеру необходимо отслеживать каждую страницу на предмет того, свободна она или нет. Для этого в операционных системах используются битовые карты, в которых каждый бит соответствует странице и равен 0 или 1 в зависимости от того, свободна ли она. Если бы в компьютере использовался 9-битный байт, то для нахождения нужной страницы в битовой карте пришлось бы делить на 9. Деление на 9 медленнее деления на 8, потому что деление на степени 2 всегда является самым быстрым.
▍ Причина 4: небольшой размер байта – это хорошо
Вы можете поинтересоваться: «Если 8-битные байты оказались лучше 4-битных, почему бы не продолжить увеличивать их размер? Можно же использовать 16-битные!»
Вот пара причин для сохранения небольшого размера байта:
- Это приведёт к пустой трате пространства – байт является минимальной адресуемой единицей, и если компьютер хранит много текста в кодировке ASCII (которой требуется всего 7 бит), то выделение для каждого символа не 8, а 12 или 16 бит приведёт к значительным потерям памяти.
- Если размер байта увеличивается, то и система процессора должна усложняться. К примеру, вам требуется по одной линии шины на бит. Так что, думаю, чем проще, тем лучше.
▍ Причина 5: совместимость
Процессор Intel 8008 (1972 год) был предшественником модели 8080 (1974 год), которая предшествовала 8086 (1976 год) – первому процессору семейства x86. Похоже, что 8080 и 8086 были очень популярны, и именно с них пошли все современные компьютеры x86.
Думаю, здесь уместен принцип «не чини того, что не сломано» – мне кажется, что 8-битные байты отлично работали, поэтому в Intel не увидели необходимости менять их размер. Сохранение 8-битного байта позволяет повторно использовать более обширную часть набора инструкций.
К тому же, в 80-х начали появляться сетевые протоколы вроде TCP, в которых использовались 8-битные байты (обычно называемые «октеты»), и если вы соберётесь реализовать сетевые протоколы, то наверняка решите использовать в них 8-битный байт.
На мой взгляд, основные причины, по которым байт состоит из 8 бит, следующие:
Сколько Байт (B) в 8 Битах (b)?
Конвертер величин измерения объема информации онлайн поможет с легкостью перевести 8 (восемь) Бит в Байты. Чтобы конвертировать другое значение из Бит в Байты, просто введите его в соответствующее поле и нажмите кнопку «Рассчитать».
Сколько Байт (B) в 8 Битах (b)?
Другие конвертации
Инструмент для конвертации величин объема информации
Конвертирование объема информации может быть полезным при работе с сетевыми технологиями, хранении данных, передаче файлов и других сферах, где необходимо оперировать разными единицами измерения. Наш инструмент обеспечивает точные и надежные результаты, помогая вам справиться с задачами, связанными с объемом информации.
Используйте наш конвертер объема информации для быстрой и удобной конвертации значений. Просто выберите начальную единицу измерения и желаемую конечную единицу, введите значение, которое вы хотите конвертировать, и нажмите на кнопку «Конвертировать». Наш инструмент мгновенно выполнит расчет и покажет вам точный результат.
Вопросы и ответы
Какой формат величин объема информации поддерживается вашим инструментом?
Как использовать инструмент?
Почему важно уметь конвертировать величины объема информации?
Какая единица измерения является наиболее распространенной для объема информации?
Как можно легко запомнить соотношение между различными единицами объема информации?
Рекомендуем посмотреть
Конвертер температур
Данный инструмент конвертирует заданную единицу измерения температуры в другую. Для конвертации доступны: Градусы Цельсия, Градусы Фаренгейта и Кельвины. Просто введите значение, которое хотите перевести, выберите доступные величины измерения времени и нажмите кнопку «Рассчитать».
Конвертер веса и массы
Наш онлайн конвертер веса и массы позволяет легко переводить между миллиграммами, граммами, килограммами, центнерами, тоннами, фунтами, унциями и каратами. Просто введите значение, которое нужно конвертировать, выберите единицу измерения и нажмите «конвертировать». Результаты будут показаны мгновенно.
Конвертер длин
Наш онлайн Конвертер длин позволяет легко и быстро переводить значения длинны и расстояния между различными системами измерения. Просто введите значение, выберите единицу измерения и получите результат в необходимой вам системе измерения.
Конвертер дат
Данный инструмент конвертирует заданную единицу времени в другую. Для конвертации доступны: секунды, минуты, часы, дни, недели, месяцы и года. Просто введите значение, которое хотите перевести, выберите доступные величины измерения времени и нажмите кнопку «Рассчитать».
Base64
Добро пожаловать в наш онлайн инструмент для работы с Base64 кодировкой. Здесь вы можете легко перевести свой текст в Base64 и обратно без лишних усилий. Наш инструмент поддерживает как ASCII, так и utf-8 кодировки текста, что позволяет работать с различными типами символов и языками. Упростите процесс обработки данных и удобно конвертируйте текст прямо здесь
Двоичный код
Данный инструмент — это дешифровщик текста в двоичном (бинарном) коде, то есть представленного в виде нулей и единиц. Также можно зашифровать текст из двоичного кода.
Бит в Байт
Конвертировать из Бит в Байт. Введите сумму, которую вы хотите конвертировать и нажмите кнопку конвертировать (↻) .
1 Бит = 0.125 Байт | 10 Бит = 1.25 Байт | 2500 Бит = 312.5 Байт |
2 Бит = 0.25 Байт | 20 Бит = 2.5 Байт | 5000 Бит = 625 Байт |
3 Бит = 0.375 Байт | 30 Бит = 3.75 Байт | 10000 Бит = 1250 Байт |
4 Бит = 0.5 Байт | 40 Бит = 5 Байт | 25000 Бит = 3125 Байт |
5 Бит = 0.625 Байт | 50 Бит = 6.25 Байт | 50000 Бит = 6250 Байт |
6 Бит = 0.75 Байт | 100 Бит = 12.5 Байт | 100000 Бит = 12500 Байт |
7 Бит = 0.875 Байт | 250 Бит = 31.25 Байт | 250000 Бит = 31250 Байт |
8 Бит = 1 Байт | 500 Бит = 62.5 Байт | 500000 Бит = 62500 Байт |
9 Бит = 1.125 Байт | 1000 Бит = 125 Байт | 1000000 Бит = 125000 Байт |
Встроить этот конвертер вашу страницу или в блог, скопировав следующий код HTML: