Сколько бит никогда не займет слово в памяти компьютера

Обновлено: 05.07.2024

Это из книги Джеффа Дантеманна "Язык ассемблера шаг за шагом":

Вот краткий обзор: бит — это одна двоичная цифра, 0 или 1. Байт — это 8 битов, расположенных рядом друг с другом. Слово — это 2 байта рядом. Двойное слово - это 2 слова рядом. Четверное слово – это два двойных слова, расположенные рядом.

А это из книги «Принципы компьютерной организации и языка ассемблера: использование виртуальной машины Java» Патрика Юолы:

Для удобства 8 бит обычно группируются в единый блок, условно называемый байтом. Следующий по величине именованный блок битов является словом. Определение и размер слова не являются абсолютными, но варьируются от компьютера к компьютеру. Слово — это размер наиболее удобного для компьютера блока данных.

Итак, слово имеет размер 2 байта (16 бит) или это наиболее удобный блок данных для компьютера? (Я также не уверен, что это значит..)

7 ответов 7

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

Процессоры производятся с самыми разными размерами слов, не всегда кратными 8.

Процессоры 8086 и 8087 использовали 16-битные слова, и, вероятно, именно об этой машине писал первый автор.

Более современные процессоры обычно используют 32- или 64-битные слова.

В 50-х и 60-х годах были машины с размерами слов, которые сейчас кажутся нам довольно странными, например, 4, 9 и 36. Примерно с 70-х годов размер слова обычно был степенью 2 и кратен 8.< /p>

Обычно 16-битные слова встречаются только в 16-битных системах, таких как Amiga 500.

Это из книги Стивена Леви "Хакеры: герои компьютерной революции".

.. память была сокращена до 4096 "слов" по восемнадцать бит каждое. («Бит» — это двоичная цифра, 1 или 0. Последовательность двоичных чисел называется «словом»).

Как показывают другие ответы, "слово" не имеет фиксированной длины.

В дополнение к другим ответам, еще один пример изменчивости размера слова (от одной системы к другой) можно найти в статье Aleph One «Разбей стек ради удовольствия и прибыли»:

Мы должны помнить, что память может быть адресована только кратно размеру слова. Слово в нашем случае составляет 4 байта или 32 бита. Таким образом, наш 5-байтовый буфер действительно займет 8 байтов (2 слова) памяти, а наш 10-байтовый буфер займет 12 байтов (3 слова) памяти.

Нет.. Этот тоже не работает.. Этот сайт недоступен. Соединение было сброшено. Может быть, потому что я на работе, но я очень сомневаюсь в этом.. Странно..

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

Хорошая газета. Я подумал, что подробности о размере слова могут помочь тем, кто хочет пролистать ответы на этот вопрос — просто для ясности, остальная часть статьи не фокусируется на размере слова и его значении.

В процессорах x86/x64 байт – это 8 бит, а 8 бит – 256 возможных двоичных состояний, от 0 до 255. Именно так ОС преобразует нажатия клавиш клавиатуры в буквы на экране. Когда вы нажимаете клавишу «A», клавиатура отправляет на компьютер двоичный сигнал, равный числу 97, и компьютер выводит на экран строчную букву «a». . Вы можете подтвердить это в любом программном обеспечении для редактирования текста Windows, удерживая клавишу ALT, набрав 97 на цифровой клавиатуре, а затем отпустив клавишу ALT. Если вы замените «97» на любое число от 0 до 255, вы увидите символ, связанный с этим номером, на кодовой странице системы, напечатанной на экране.

Если символ состоит из 8 бит или 1 байта, то WORD должен состоять как минимум из 2 символов, то есть 16 бит или 2 байта. Традиционно вы можете думать о слове как о различном количестве символов, но в компьютере все, что можно вычислить, основано на статических правилах. Кроме того, компьютер не знает, что такое буквы и символы, он умеет только считать числа. Итак, на компьютерном языке, если WORD равно 2 символам, то двойное слово или DWORD — это 2 WORD, что такое же, как 4 символа или байта, что равно 32 битам. Кроме того, четверное слово, или QWORD, состоит из 2 DWORD, таких же, как 4 WORD, 8 символов или 64 бита.

Обратите внимание, что функции этих терминов ограничены API Windows для разработчиков, но могут встречаться и в других обстоятельствах (например, команда Linux dd использует числовые суффиксы для составных размеров байтов и блоков, где c равно 1 байту, а w равно байтам).

Это из книги Джеффа Дантеманна "Язык ассемблера шаг за шагом":

Вот краткий обзор: бит — это одна двоичная цифра, 0 или 1.Байт — это 8 битов, расположенных рядом друг с другом. Слово — это 2 байта рядом. Двойное слово - это 2 слова рядом. Четверное слово – это два двойных слова, расположенные рядом.

А это из книги «Принципы компьютерной организации и языка ассемблера: использование виртуальной машины Java» Патрика Юолы:

Для удобства 8 бит обычно группируются в единый блок, условно называемый байтом. Следующий по величине именованный блок битов является словом. Определение и размер слова не являются абсолютными, но варьируются от компьютера к компьютеру. Слово — это размер наиболее удобного для компьютера блока данных.

Итак, слово имеет размер 2 байта (16 бит) или это наиболее удобный блок данных для компьютера? (Я также не уверен, что это значит..)

7 ответов 7

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

Процессоры производятся с самыми разными размерами слов, не всегда кратными 8.

Процессоры 8086 и 8087 использовали 16-битные слова, и, вероятно, именно об этой машине писал первый автор.

Более современные процессоры обычно используют 32- или 64-битные слова.

В 50-х и 60-х годах были машины с размерами слов, которые сейчас кажутся нам довольно странными, например, 4, 9 и 36. Примерно с 70-х годов размер слова обычно был степенью 2 и кратен 8.< /p>

Обычно 16-битные слова встречаются только в 16-битных системах, таких как Amiga 500.

Это из книги Стивена Леви "Хакеры: герои компьютерной революции".

.. память была сокращена до 4096 "слов" по восемнадцать бит каждое. («Бит» — это двоичная цифра, 1 или 0. Последовательность двоичных чисел называется «словом»).

Как показывают другие ответы, "слово" не имеет фиксированной длины.

В дополнение к другим ответам, еще один пример изменчивости размера слова (от одной системы к другой) можно найти в статье Aleph One «Разбей стек ради удовольствия и прибыли»:

Мы должны помнить, что память может быть адресована только кратно размеру слова. Слово в нашем случае составляет 4 байта или 32 бита. Таким образом, наш 5-байтовый буфер действительно займет 8 байтов (2 слова) памяти, а наш 10-байтовый буфер займет 12 байтов (3 слова) памяти.

Нет.. Этот тоже не работает.. Этот сайт недоступен. Соединение было сброшено. Может быть, потому что я на работе, но я очень сомневаюсь в этом.. Странно..

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

Хорошая газета. Я подумал, что подробности о размере слова могут помочь тем, кто хочет пролистать ответы на этот вопрос — просто для ясности, остальная часть статьи не фокусируется на размере слова и его значении.

В процессорах x86/x64 байт – это 8 бит, а 8 бит – 256 возможных двоичных состояний, от 0 до 255. Именно так ОС преобразует нажатия клавиш клавиатуры в буквы на экране. Когда вы нажимаете клавишу «A», клавиатура отправляет на компьютер двоичный сигнал, равный числу 97, и компьютер выводит на экран строчную букву «a». . Вы можете подтвердить это в любом программном обеспечении для редактирования текста Windows, удерживая клавишу ALT, набрав 97 на цифровой клавиатуре, а затем отпустив клавишу ALT. Если вы замените «97» на любое число от 0 до 255, вы увидите символ, связанный с этим номером, на кодовой странице системы, напечатанной на экране.

Если символ состоит из 8 бит или 1 байта, то WORD должен состоять как минимум из 2 символов, то есть 16 бит или 2 байта. Традиционно вы можете думать о слове как о различном количестве символов, но в компьютере все, что можно вычислить, основано на статических правилах. Кроме того, компьютер не знает, что такое буквы и символы, он умеет только считать числа. Итак, на компьютерном языке, если WORD равно 2 символам, то двойное слово или DWORD — это 2 WORD, что такое же, как 4 символа или байта, что равно 32 битам. Кроме того, четверное слово, или QWORD, состоит из 2 DWORD, таких же, как 4 WORD, 8 символов или 64 бита.

Обратите внимание, что функции этих терминов ограничены API Windows для разработчиков, но могут встречаться и в других обстоятельствах (например, команда Linux dd использует числовые суффиксы для составных размеров байтов и блоков, где c равно 1 байту, а w равно байтам).

сверла

Не хочу вас разочаровывать, но скорость вашего интернета не 100 МБ/с (мегабайт в секунду); это больше похоже на 100 Мбит/с (мегабит в секунду).Как системные администраторы, мы иногда смешиваем эти два понятия — биты и байты, — но между ними есть разница. Но затем вы звоните представителю интернет-провайдера, и они обещают вам 10 гигабайт/с, 40 гигабайт/с, 100 гигабайт/с или один гигабайт/с пропускной способности, и вы покупаете услугу только для того, чтобы выяснить это на собственном горьком опыте. что они имели в виду 100 гигабит/с. Я не говорю, с кем это случилось…

Мегабайты обычно относятся к хранилищу (ОЗУ, жесткие диски, твердотельные накопители, NVMe и т. д.), а мегабиты — к полосе пропускания или пропускной способности сети (сетевые карты, модемы, адаптеры Wi-Fi и т. д.). Их легко спутать, потому что и бит/с, и байт/с представляют скорость передачи данных, но помните, что в аббревиатурах каждого из них буква «В» в верхнем регистре обозначает байты, а буква «b» в нижнем регистре — биты.

Бит/с и байт/с

Итак, биты и байты — это единицы данных, но в чем между ними разница? Один байт эквивалентен восьми битам. Бит считается наименьшей единицей измерения данных. Бит может быть либо 0, либо 1. Компьютеры интерпретируют наши намерения и обрабатывают информацию посредством соответствующего представления этих «инструкций» в виде битов. Компьютеры также отправляют и получают данные в виде единиц и нулей — битов. Независимо от объема данных, передаваемых по сети, сохраняемых или извлекаемых из хранилища, информация передается в виде битов. То, как мы интерпретируем скорость передачи битов, означает, как мы сообщаем эту скорость передачи. Мы можем произвольно выразить скорость передачи как «бит на [любое измерение времени]». Мы могли бы использовать минуты, часы, дни или даже микросекунды, но привычным стандартом стали секунды. Это дает нам простой способ оценить, сколько времени займет то или иное действие.

Бит/с

Когда данные передаются по сети, они обычно записываются в битах/с, килобитах/с (кбит/с), мегабитах/с (Мбит/с) или гигабитах/с (Гбит/с). В следующей таблице это описано:

По мере увеличения скорости сети стало проще описывать скорость передачи в более высоких единицах измерения. Мы перешли от 9600 бит/с к 14,4 кбит/с, к 28,8 кбит/с, к 56 кбит/с, к 128 кбит/с. Оттуда мы взлетели до 1 Мбит/с, затем до 100 Мбит/с, затем до 1000 Мбит/с (1 Гбит/с), 10000 Мбит/с (10 Гбит/с). По мере того, как с годами менялись средства передачи, менялась и скорость передачи.

Байт/с

Локальное хранение и извлечение данных на компьютере всегда было быстрее, чем их передача по сети. Передача по сети была (и остается) ограниченной используемой средой передачи. Поскольку размеры файлов с годами росли, стало легче понять, сколько времени потребуется для хранения или извлечения файла. Ключом к пониманию терминологии хранения данных является то, что восемь бит равны одному байту. Таким образом, файл в один мегабайт на самом деле представляет собой файл размером 8 000 000 бит. Это означает, что файл состоит из 8 000 000 единиц и нулей и может храниться со скоростью один МБ/с или 8 000 000 бит/с.

Дополнительно — МиБ против МБ

Openshift 4 (OCP 4) теперь может «контейнеризировать» ВМ (виртуальные машины) — да, правила игры изменились. В Openshift теперь вы можете увидеть некоторые размеры файлов с пометкой MiB. MiB означает Mebibyte, что является сокращением слов «мега» и «двоичный». Это новый способ записи емкости хранилища, чтобы внести некоторую ясность в слова, которые мы используем, и фактическую математику, стоящую за этими словами.

Обзор

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

Вероятно, вы знаете, что все на компьютере хранится в виде строк битов (двоичных цифр; вы можете думать о них как о множестве маленьких переключателей). Здесь мы объясним, как эти биты используются для представления букв и цифр, которые обрабатывает ваш компьютер.

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

Большинство компьютеров теперь имеют размер слова 64 бита. В недавнем прошлом (начало 2000-х) многие ПК имели 32-битные слова. Старые машины 286 в 1980-х годах имели размер слова 16. В старых мейнфреймах часто использовались 36-битные слова.

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

Целые числа представлены в виде слов или пар слов, в зависимости от размера слова вашего процессора.Одно 64-битное машинное слово является наиболее распространенным целочисленным представлением.

Целая арифметика близка к математической системе счисления по основанию два, но не совсем ей. Младший бит равен 1, затем 2, затем 4 и так далее, как в чистом двоичном коде. Но числа со знаком представлены в записи с дополнением до двух. Бит старшего разряда является битом знака, который делает величину отрицательной, и каждое отрицательное число может быть получено из соответствующего положительного значения путем инвертирования всех битов и добавления единицы. Вот почему целые числа на 64-битной машине имеют диапазон от -2 63 до 2 63 - 1. Этот 64-й бит используется для знака; 0 означает положительное число или ноль, 1 — отрицательное число.

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

Большинство процессоров и некоторые языки могут выполнять операции с числами с плавающей запятой (эта возможность встроена во все современные чипы процессоров). Числа с плавающей запятой дают гораздо более широкий диапазон значений, чем целые числа, и позволяют выражать дроби. Способы, которыми это делается, различны и слишком сложны, чтобы подробно обсуждать их здесь, но общая идея очень похожа на так называемую «научную нотацию», где можно записать, скажем, 1,234 * 10 23 ; кодирование числа разделено на мантисса (1,234) и экспоненциальную часть (23) для множителя степени десяти (что означает, что умноженное число будет иметь 20 нулей, 23 минус три десятичных знака).

Предыдущий абзац вводил в заблуждение по двум причинам. Второстепенным является то, что термин «октет» формально корректен, но на самом деле используется редко; большинство людей называют октет байтом и ожидают, что длина байта будет восемь бит. Строго говоря, термин «байт» является более общим; раньше были, например, 36-битные машины с 9-битными байтами (хотя, вероятно, их больше никогда не будет).

Главная из них заключается в том, что не во всем мире используется ASCII. На самом деле, большая часть мира не может - ASCII, хотя и подходит для американского английского, не имеет многих акцентированных и других специальных символов, необходимых пользователям других языков. Даже в британском английском есть проблемы с отсутствием знака фунта стерлингов.

Было несколько попыток решить эту проблему. Все они используют дополнительный старший бит, которого нет в ASCII, что делает его младшей половиной набора из 256 символов. Наиболее широко используемым из них является так называемый набор символов «Latin-1» (более формально называемый ISO 8859-1). Это набор символов по умолчанию для Linux, старых версий HTML и X. Microsoft Windows использует измененную версию Latin-1, которая добавляет набор символов, таких как правые и левые двойные кавычки, в тех местах, где правильный Latin-1 оставляет неназначенными для исторических данных. причинам (обзорный отчет о проблемах, которые это вызывает, см. на странице деморонизатора).

Latin-1 поддерживает западноевропейские языки, включая английский, французский, немецкий, испанский, итальянский, голландский, норвежский, шведский, датский и исландский. Однако этого тоже недостаточно, и в результате существует целая серия наборов символов от латиницы от 2 до -9 для обработки таких вещей, как греческий, арабский, иврит, эсперанто и сербско-хорватский. Подробности см. на странице супа с алфавитом ISO.

Наилучшее решение — огромный стандарт Unicode (и его аналог ISO/IEC 10646-1:1993). Unicode идентичен Latin-1 в самых нижних 256 слотах. Над ними в 16-битном пространстве он включает греческий, кириллический, армянский, иврит, арабский, деванагари, бенгальский, гурмукхи, гуджарати, ория, тамильский, телугу, каннада, малаялам, тайский, лаосский, грузинский, тибетский, японский Кана, полный набор современных корейских хангыль и единый набор китайских/японских/корейских (CJK) иероглифов. Дополнительные сведения см. на домашней странице Unicode. XML и XHTML используют этот набор символов.

Читайте также: