Подтвердить что ты не робот

Какая разница между словом и байтом?

Я провел некоторое исследование. Байт - 8 бит, а слово - наименьшая единица, которая может быть адресована в память. Точная длина слова меняется. Что я не понимаю, так это вопрос с байтом? Почему бы не сказать 8 бит?

Я спросил у профессора этот вопрос, и он сказал, что большинство машин в наши дни адресованы байтами, но что бы это произнесло?

4b9b3361

Ответ 1

Байт. Сегодня байт почти всегда 8 бит. Однако, не всегда был случай, и нет никакого "стандартного" или того, что диктует это. Поскольку 8 бит - удобное число для работы с ним, стало стандартом де-факто.

Слово: естественный размер, с которым процессор обрабатывает данные (размер регистра). Самые распространенные типы слов, встречающиеся сегодня, - 8, 16, 32 и 64 бита, но возможны другие размеры. Например, было несколько 36-битных машин или даже 12-разрядных машин.

байт - наименьшая адресуемая единица для CPU. Если вы хотите установить/очистить отдельные биты, сначала нужно извлечь соответствующий байт из памяти, поработать с битами, а затем записать байт обратно в память.

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

Есть также несколько процессоров, которые имеют другой размер указателя: например, 8086 - это 16-разрядный процессор, который означает, что его регистры имеют ширину 16 бит. Но его указатели (адреса) имеют ширину 20 бит и вычисляются путем объединения двух 16-разрядных регистров определенным образом.

Ответ 2

То, что я не понимаю, в чем смысл байта? Почему бы не сказать 8 бит?

Помимо технической точки, что байт не обязательно является 8 битами, причины наличия термина являются простой человеческой природой:

  • экономия усилий (ака лень) - проще сказать "байт", а не "восемь бит"

  • tribalism - группы людей любят использовать жаргон/частный язык, чтобы отделить их от других.

Просто пойдите с потоком. Вы не собираетесь менять более 50 лет накопленной ИТ-терминологии и культурного багажа, жалуясь на это.


FWIW - правильный термин для использования, когда вы имеете в виду "8 бит, независимые от аппаратной архитектуры", - это "октет".

Ответ 3

BYTE

Я пытаюсь ответить на этот вопрос с точки зрения С++.

Стандарт С++ определяет 'byte as' Адресный блок данных, достаточно большой, чтобы содержать любой элемент базового набора символов среды выполнения.

Это означает, что байт состоит из, по меньшей мере, достаточно смежных битов для размещения базового набора символов для реализации. То есть количество возможных значений должно быть равно или превышать число отдельных символов. В Соединенных Штатах основные наборы символов обычно являются наборами ASCII и EBCDIC, каждый из которых может быть размещен на 8 бит. Следовательно, гарантируется, что байт будет содержать не менее 8 бит.

Другими словами, байт представляет собой объем памяти, необходимый для хранения одного символа.

Если вы хотите проверить "количество бит в вашей реализации на С++, проверьте файл" limits.h ". Он должен иметь запись, как показано ниже.

#define CHAR_BIT      8         /* number of bits in a char */

WORD

Слово определяется как определенное количество бит, которое может обрабатываться вместе (то есть в одной попытке) машиной/системой. В качестве альтернативы можно сказать, что Word определяет объем данных, которые могут быть переданы между ЦП и ОЗУ за одну операцию.

Аппаратные регистры на компьютерном компьютере имеют размер слова. Размер Word также определяет наибольший возможный адрес памяти (каждый адрес памяти указывает на размер памяти в байтах).

Примечание. В программах на С++ адреса памяти указывают на байты памяти, а не на слово.

Ответ 4

Почему бы не сказать 8 бит?

Потому что не все машины имеют 8-битные байты. Поскольку вы отметили этот C, найдите CHAR_BIT в limits.h.

Ответ 5

Слово - это размер регистров в процессоре. Это означает, что инструкции процессора, такие как add, mul и т.д., Находятся на входах с размером слова.

Но у большинства современных архитектур есть память, которая адресуется в 8-битных кусках, поэтому удобно использовать слово "байт".

Ответ 6

В этом контексте слово - это единица, которую машина использует при работе с памятью. Например, на 32-битной машине слово имеет длину 32 бита, а на 64 бит - 64 бита. Размер слова определяет адресное пространство.

В программировании (C/С++) слово обычно представлено типом int_ptr, который имеет ту же длину, что и указатель, таким образом абстрагируя эти данные.

Некоторые API могут вас смутить, например Win32 API, потому что у него есть такие типы, как WORD (16 бит) и DWORD (32 бита). Причина в том, что API первоначально ориентировался на 16-битные машины, затем был перенесен на 32-битные машины, а затем на 64-битные машины. Чтобы сохранить указатель, вы можете использовать int_ptr. Подробнее здесь и здесь.

Ответ 7

Кажется, что все ответы предполагают языки высокого уровня и в основном C/C++.

Но вопрос помечен как "сборка", и во всех известных мне ассемблерах (для 8-битных, 16-битных, 32-битных и 64-битных процессоров) определения гораздо яснее:

byte  = 8 bits 
word  = 2 bytes
dword = 4 bytes = 2Words (dword means "double word")
qword = 8 bytes = 2Dwords = 4Words ("quadruple word")

Ответ 8

Независимо от терминологии, присутствующей в спецификациях и компиляторах, "байт" - восемь бит. Не пытайтесь путать исследователей и общность с более неясными исключениями, в частности, поскольку слово "Byte" происходит от выражения "By Eight". Я работал в полупроводниковой/электронной промышленности более тридцати лет, и ни разу не известный "Byte" использовал для выражения всего более восьми бит.

Ответ 9

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

bit = …1 bit…
nybble = 4 bits = 1/2 byte
byte = 8 bits = 2 nybbles
WORD = 2 bytes = 4 nybbles = 16 bits
DWORD = 2 WORDs = 4 bytes = 8 nybbles = 32 bits
QWORD = 2 DWORDs = 4 WORDs = ... = 64 bits

Ответ 10

Точная длина слова варьируется. Что я не понимаю, в чем смысл иметь байт? Почему бы не сказать 8 бит?

Несмотря на то, что длина слова варьируется, на всех современных машинах и даже на всех более старых архитектурах, с которыми я знаком, размер слова по-прежнему кратен размеру байта. Таким образом, нет особого недостатка в использовании "байта" над "8 битами" по отношению к переменному размеру слова.

Кроме того, вот несколько причин использовать байт (или октет 1) вместо "8 бит":

  1. Большие единицы просто удобны, чтобы избежать очень больших или очень маленьких чисел: вы также можете спросить "зачем говорить 3 наносекунды, когда вы могли бы сказать 0,000000003 секунды" или "зачем говорить 1 килограмм, когда вы могли бы сказать 1000 граммов" и т.д.
  2. Помимо удобства, единица байта так же фундаментальна, как 1 бит, поскольку многие операции обычно работают не на уровне байтов, а на уровне байтов: адресация памяти, выделение динамического хранилища, чтение из файла или сокета и т.д.
  3. Даже если бы вы приняли "8-битный" как тип блока, так что вы могли бы сказать "два 8-битных" вместо "двухбайтных", часто было бы очень запутанным начинать новый блок с числа. Например, если кто-то сказал "сто 8 бит", это можно было бы легко интерпретировать как 108 бит, а не 100 бит.

1 Хотя для этого ответа я буду считать 8-битный байт, это не всегда так: на старых машинах байт может иметь другой размер (например, 6- битный. Октет всегда означает 8-битный независимо от компьютера ( поэтому этот термин часто используется при определении сетевых протоколов.) В современном использовании байт используется как синоним 8 битов.

Ответ 11

бит= 0 или 1

октет= 8 бит

байт= размер одной записи

слово= размер одного регистра

слово= двойное слово

qword= четверное слово

8 бит - стандартный размер байта с 1993 года.

7 бит для ASCII + 1 бит для контроля четности.

Ответ 12

Если машина байт-адресная, а слово - наименьшая единица, которая может быть адресована в память, тогда я думаю, что слово будет байтом!

Ответ 13

Группа из 8 бит называется байтом (за исключением того, что она не является:) для некоторых архитектур)

A слово представляет собой группу битов фиксированного размера, которые обрабатываются как единица набором команд и/или оборудованием процессора. Это означает, что размер регистра общего назначения (который обычно больше байта) представляет собой слово

В C слово чаще всего называют целым числом = > int

Ответ 14

Термины BYTE и WORD относятся к размеру процессора, на который идет ссылка. Наиболее распространенными процессорами являются/были 8-битные, 16-битные, 32-битные или 64-битные. Это длина СЛОВА процессора. На самом деле половина СЛОВА - это БАЙТ, какой бы ни была числовая длина. Готовы к этому, половина БАЙТА - НИКАК.

Ответ 15

Фактически, при обычном использовании слово стало синонимом 16 бит, так же как и у байта с 8 бит. Может немного запутаться, так как "размер слова" на 32-битном процессоре 32-битный, но когда речь идет о слове данных, это означает 16 бит. Микроконтроллеры с 32-разрядным размером слова взяли вызов своих инструкций "longs" (предположительно, чтобы попытаться избежать путаницы слов/двойных слов).