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

Обновлено: 30.06.2024

Эти термины обычно используются в мире вычислений для описания дискового пространства или места для хранения данных и системной памяти. Например, всего несколько лет назад мы описывали место на жестком диске, используя термин «мегабайты». Сегодня гигабайты — наиболее распространенный термин, используемый для описания размера жесткого диска. В недалеком будущем Терабайт станет общепринятым термином. Но что это такое? Здесь все становится довольно запутанным, потому что существует как минимум три общепринятых определения каждого термина.

Согласно компьютерному словарю IBM, при использовании для описания емкости дискового хранилища мегабайт равен 1 000 000 байт в десятичной системе счисления. Но когда термин «мегабайт» используется для реального и виртуального хранилища, а также объема канала, подходящим обозначением является 2 в 20-й степени или 1 048 576 байт. Согласно компьютерному словарю Microsoft Press, мегабайт означает либо 1 000 000 байт, либо 1 048 576 байт. Согласно Эрику С. Рэймонду в The New Hacker’s Dictionary, мегабайт всегда равен 1 048 576 байтам на том основании, что байты должны естественным образом вычисляться в степени двойки. Итак, какому определению соответствует большинство людей?

Что касается мегабайта дискового пространства, производители жестких дисков используют стандарт, согласно которому мегабайт равен 1 000 000 байт. Это означает, что когда вы покупаете жесткий диск на 250 гигабайт, вы получаете в общей сложности 250 000 000 000 байт доступного хранилища. Вот где это сбивает с толку, потому что Windows использует правило 1 048 576 байт, поэтому, когда вы смотрите на свойства диска Windows, диск на 250 гигабайт дает только 232 гигабайта доступного пространства для хранения, диск на 750 ГБ показывает только 698 ГБ, а жесткий диск на один терабайт сообщает емкостью 931 гигабайт. Кто-нибудь еще запутался? С тремя принятыми определениями всегда будет некоторая путаница, поэтому я попытаюсь немного упростить определения.

Число 1000 можно заменить на 1024, и оно по-прежнему будет правильным при использовании других приемлемых стандартов. Оба эти стандарта верны в зависимости от того, какой тип хранилища вы имеете в виду.

Процессор или виртуальное хранилище

· 1 бит = двоичная цифра
· 8 бит = 1 байт
· 1024 байта = 1 килобайт
· 1024 килобайта = 1 мегабайт
· 1024 мегабайта = 1 гигабайт < br />· 1024 гигабайта = 1 терабайт
· 1024 терабайта = 1 петабайт
· 1024 петабайта = 1 экзабайт
· 1024 экзабайта = 1 зеттабайт
· 1024 зеттабайта = 1 йоттабайт < br />· 1024 йоттабайта = 1 бронтобайт
· 1024 бронтобайта = 1 геобайт

Дисковое хранилище

· 1 бит = двоичная цифра
· 8 бит = 1 байт
· 1000 байт = 1 килобайт
· 1000 килобайт = 1 мегабайт
· 1000 мегабайт = 1 гигабайт < br />· 1000 гигабайт = 1 терабайт
· 1000 терабайт = 1 петабайт
· 1000 петабайт = 1 экзабайт
· 1000 экзабайт = 1 зеттабайт
· 1000 зеттабайт = 1 йоттабайт < br />· 1000 йоттабайт = 1 бронтобайт
· 1000 бронтобайт = 1 геобайт

Это основано на IBM Dictionary of computer, методе описания дискового хранилища — простейшем.

А теперь подробнее.

Бит — это наименьшая единица данных, используемая компьютером. Его можно использовать для представления двух состояний информации, например "Да" или "Нет".

Байт равен 8 битам. Байт может представлять 256 состояний информации, например, числа или комбинацию цифр и букв. 1 байт может быть равен одному символу. 10 байт могут быть равны слову. 100 байт равняются среднему предложению.

Килобайт:

Килобайт составляет примерно 1000 байт, фактически 1024 байта, в зависимости от того, какое определение используется. 1 килобайт соответствует абзацу, который вы читаете, а 100 килобайт — целой странице.

Мегабайт:

Мегабайт составляет примерно 1000 килобайт. На заре вычислительной техники мегабайт считался большим объемом данных. В наши дни, когда жесткий диск на 500 гигабайт на компьютере является обычным явлением, мегабайт уже не кажется чем-то большим. Одна из этих старых 3-1/2-дюймовых гибких дисков может вместить 1,44 мегабайта или эквивалент небольшой книги. В 100 мегабайтах может поместиться пара томов энциклопедий. 600 мегабайт — это объем данных, которые поместятся на диске CD-ROM.

Гигабайт:

Гигабайт примерно равен 1000 мегабайт. Гигабайт по-прежнему является очень распространенным термином, используемым в наши дни, когда речь идет о дисковом пространстве или хранилище на диске. 1 гигабайт данных почти в два раза превышает объем данных, который может храниться на компакт-диске. Но это примерно в тысячу раз больше емкости 3-1/2 дискеты. 1 гигабайт может вместить содержимое около 10 ярдов книг на полке. 100 гигабайт могут вместить всю библиотеку академических журналов.

Терабайт:

Терабайт примерно равен одному триллиону байтов или 1000 гигабайтам.Было время, когда я никогда не думал, что увижу жесткий диск емкостью 1 терабайт, а теперь диски емкостью 1 и 2 терабайта являются нормальными характеристиками для многих новых компьютеров. Чтобы представить это в некоторой перспективе, терабайт может вместить около 3,6 миллиона 300-килобайтных изображений или, возможно, около 300 часов видео хорошего качества. Терабайт может вместить 1000 экземпляров Британской энциклопедии. Десять терабайт могли бы вместить печатную коллекцию Библиотеки Конгресса. Это много данных.

Петабайт:

Петабайт равен приблизительно 1000 терабайтам или одному миллиону гигабайт. Трудно представить, что может вместить петабайт. 1 петабайт может вместить около 20 миллионов 4-дверных картотечных шкафов, заполненных текстом. Он мог вместить 500 миллиардов страниц стандартного печатного текста. Для хранения такого же объема данных потребуется около 500 млн гибких дисков.

Экзабайт:

Экзабайт составляет примерно 1000 петабайт. Другой способ взглянуть на это состоит в том, что эксабайт составляет примерно один квинтиллион байт или один миллиард гигабайт. Exabyte не с чем сравнивать. Говорят, что 5 экзабайт равны всем словам, когда-либо произнесенным человечеством.

Зеттабайт:

Зеттабайт равен примерно 1000 эксабайтам. Не с чем сравнивать зеттабайт, кроме как сказать, что для его заполнения потребуется много единиц и нулей.

Йоттабайт:

Йоттабайт равен примерно 1000 зеттабайт. Потребуется примерно 11 триллионов лет, чтобы загрузить файл Yottabyte из Интернета с использованием высокоскоростной широкополосной связи. Вы можете сравнить его со Всемирной паутиной, так как весь Интернет занимает почти йоттабайт.

Бронтобайт:

Бронтобайт (как вы уже догадались) составляет примерно 1000 йоттабайт. Единственное, что можно сказать о бронтобайте, это то, что это единица с 27 нулями!

Геопбайт:

Геопбайт составляет около 1000 бронтобайт! Не уверен, почему этот термин был создан. Я сомневаюсь, что кто-либо из ныне живущих когда-либо увидит жесткий диск Geopbyte. Один из способов просмотра геобайта: 15267 6504600 2283229 4012496 703< sub>1205 376 байт!

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

Если вы найдете эту информацию полезной, вы можете держать ее на ладони вместе с преобразователем байтов. Ознакомьтесь с нашим приложением Byte Converter здесь.

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

Недавно было несколько запросов о различиях между технологиями 3G и 4G в отношении того, на сколько гигабайт быстрее 4G. Ну, я сразу понял путаницу. Существует большая разница между гигабайтами и гигабитами в секунду, на которые, как утверждается, способна сеть 4G. Тем не менее, вопрос вызвал во мне интерес, и в моей постоянно растущей жажде знаний была создана книга «Что такое G». Объяснение 3G, 4G, 4G LTE и 5G.

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

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

Лучше избегать термина "слово" из-за его двусмысленности. Или уточните, сказав 16-битное слово, 32-битное слово, .

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

Чтобы ответить на вопрос "какой смысл иметь байт" - это история. Изначально процессоры не могли обрабатывать что-либо большее, чем «байт» (более ранние процессоры обрабатывали только nybbles (4 бита), но этот термин так и не прижился). Первым процессором в истории был Intel 8086/8088. Он был разработан для работы с инструкциями, построенными вокруг «байтов», поэтому мы до сих пор ссылаемся на память с точки зрения xBytes, например. GigaBytes, потому что основной единицей адресуемой памяти был байт. 'K - это ссылка на килобайты, которых на первых ПК было 16, с возможностью расширения до 64 - ух ты!

14 ответов 14

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

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

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

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

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

Отличный ответ. Я бы только поспорил с тем, что «[t]это слово, напротив, является самым большим куском битов, с которым процессор может выполнять обработку. за раз». На самом деле это наиболее распространенный фрагмент битов и т. д. Многие архитектуры, которые развивались с течением времени, имеют размер слова, который не является их самым широким, но они часто ограничены в том, что они могут делать с их самые широкие значения.

Кроме того, половинку байта обычно называют полубайтом. Он возник в раннюю эру ЦП микрокомпьютеров (например,, Intel 8080) и всегда считался 4-битным, потому что к тому времени байт стал 8-битным.

@DebanjanDhar: Да, они не связаны. Единственная связь заключается в том, что страница (насколько мне известно) всегда кратна размеру слова.

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

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

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

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

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

БАЙТ

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

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

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

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

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

СЛОВО

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

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

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

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

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

Байт — это единица измерения, которая использовалась в качестве символа в тексте. Исторически существовали байты размером от 6 до 9 бит.

@quest4knoledge: потому что память хранится меньшими порциями, чем слова. Слово имеет длину 32 бита (или 64 бита на более новых машинах). В алгоритме, который обрабатывает отдельные символы один за другим, они ДЕЙСТВИТЕЛЬНО занимают целое слово, только когда находятся внутри ЦП, а при помещении обратно в ОЗУ они упакованы более плотно.

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

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

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

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

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

Нет, эти размеры допустимы только на 16-разрядной машине. Вы, вероятно, привыкли к программированию под Windows, в котором до сих пор используются эти макросы, поскольку они унаследованы от 16-разрядных времен, и MS не удосужилась это исправить.

Кстати, поскольку размер слова (и даже байта) может варьироваться, ISO-C имеет типы int _t и uint _t (плюс больше), которые следует использовать, если вам нужна переменная/параметр определенного размер в битах.

@DarkDust здесь мы говорим об ассемблере. Стандарты C не имеют значения. Кстати, я программирую сборку с 1980 года, и использовались те же имена. (ну может кроме qword)

К сожалению, AS не является ассемблером. Это уродливый, калека, жалкий мутант, созданный с единственной целью - быть серверной частью для компиляторов HLL.

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

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

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

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

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

Это вообще не оттуда. На самом деле этот термин был придуман У. Бухгольцем из IBM в конце 1950-х годов. Источник: bobbemer.com/BYTE.HTM. По словам Боба Бемера, написание «байт» было выбрано вместо «кусать», чтобы избежать путаницы (с «бит») из-за опечаток. Он бы знал. Он был там!

(Всего 30 лет? Ты просто хлюпик. Я учился программировать на системах, где естественный размер "байта" не был 8 бит :-)) )

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

Основные блоки

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

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

Префиксы СИ

Компьютерная память использует часть префиксов Международной системы единиц (СИ) для кратных базовой единице, байту. Однако префиксы на самом деле не являются метрическими, поскольку байт — это восемь бит, а килобайт — 1024 байта.

Кило (килобайт, КБ)

Мега (мегабайт, МБ)

Гига (Гигабайт, ГБ)

Тера (Терабайт, ТБ)

Пета (петабайт, ПБ)

Единицы памяти

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

В зависимости от того, для чего вы используете свой компьютер, вам обычно требуется столько памяти, сколько вмещает ваш компьютер. Производитель и модель вашего компьютера определяют тип и объем памяти вашего компьютера, а также максимальный объем и скорость, которые он может вместить.Используйте инструмент Crucial® Advisor™ или инструмент System Scanner, чтобы найти совместимую память. Чтобы узнать больше о том, сколько памяти у вас должно быть, прочитайте здесь.

Диски для хранения данных; жесткие диски и твердотельные накопители используют одни и те же термины памяти при описании емкости накопителя. По мере того, как файлы с видео и очень большими фотографиями становятся все больше, также требуются диски большей емкости. В настоящее время твердотельные накопители продаются с различной емкостью в гигабайтах и ​​терабайтах. Как и в случае с оперативной памятью, вы можете использовать инструмент Crucial® Advisor™ или инструмент System Scanner, чтобы найти SSD, совместимый с вашей системой.

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

Основные блоки

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

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

Префиксы СИ

Компьютерная память использует часть префиксов Международной системы единиц (СИ) для кратных базовой единице, байту. Однако префиксы на самом деле не являются метрическими, поскольку байт — это восемь бит, а килобайт — 1024 байта.

Кило (килобайт, КБ)

Мега (мегабайт, МБ)

Гига (Гигабайт, ГБ)

Тера (Терабайт, ТБ)

Пета (петабайт, ПБ)

Единицы памяти

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

В зависимости от того, для чего вы используете свой компьютер, вам обычно требуется столько памяти, сколько вмещает ваш компьютер. Производитель и модель вашего компьютера определяют тип и объем памяти вашего компьютера, а также максимальный объем и скорость, которые он может вместить. Используйте инструмент Crucial® Advisor™ или инструмент System Scanner, чтобы найти совместимую память. Чтобы узнать больше о том, сколько памяти у вас должно быть, прочитайте здесь.

Диски для хранения данных; жесткие диски и твердотельные накопители используют одни и те же термины памяти при описании емкости накопителя. По мере того, как файлы с видео и очень большими фотографиями становятся все больше, также требуются диски большей емкости. В настоящее время твердотельные накопители продаются с различной емкостью в гигабайтах и ​​терабайтах. Как и в случае с оперативной памятью, вы можете использовать инструмент Crucial® Advisor™ или инструмент System Scanner, чтобы найти SSD, совместимый с вашей системой.

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

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

Лучше избегать термина "слово" из-за его двусмысленности. Или уточните, сказав 16-битное слово, 32-битное слово, .

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

Чтобы ответить на вопрос "какой смысл иметь байт" - это история. Изначально процессоры не могли обрабатывать что-либо большее, чем «байт» (более ранние процессоры обрабатывали только nybbles (4 бита), но этот термин так и не прижился). Первым процессором в истории был Intel 8086/8088. Он был разработан для работы с инструкциями, построенными вокруг «байтов», поэтому мы до сих пор ссылаемся на память с точки зрения xBytes, например. GigaBytes, потому что основной единицей адресуемой памяти был байт. 'K - это ссылка на килобайты, которых на первых ПК было 16, с возможностью расширения до 64 - ух ты!

14 ответов 14

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

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

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

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

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

Отличный ответ. Я бы только поспорил с тем, что «[t]это слово, напротив, является самым большим куском битов, с которым процессор может выполнять обработку. за раз». На самом деле это наиболее распространенный фрагмент битов и т. д. Многие архитектуры, которые развивались с течением времени, имеют размер слова, который не является их самым широким, но они часто ограничены в том, что они могут делать с их самые широкие значения.

Кроме того, половинку байта обычно называют полубайтом. Он возник в раннюю эру ЦП микрокомпьютеров (например,, Intel 8080) и всегда считался 4-битным, потому что к тому времени байт стал 8-битным.

@DebanjanDhar: Да, они не связаны. Единственная связь заключается в том, что страница (насколько мне известно) всегда кратна размеру слова.

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

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

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

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

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

БАЙТ

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

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

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

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

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

СЛОВО

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

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

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

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

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

Байт — это единица измерения, которая использовалась в качестве символа в тексте. Исторически существовали байты размером от 6 до 9 бит.

@quest4knoledge: потому что память хранится меньшими порциями, чем слова. Слово имеет длину 32 бита (или 64 бита на более новых машинах). В алгоритме, который обрабатывает отдельные символы один за другим, они ДЕЙСТВИТЕЛЬНО занимают целое слово, только когда находятся внутри ЦП, а при помещении обратно в ОЗУ они упакованы более плотно.

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

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

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

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

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

Нет, эти размеры допустимы только на 16-разрядной машине. Вы, вероятно, привыкли к программированию под Windows, в котором до сих пор используются эти макросы, поскольку они унаследованы от 16-разрядных времен, и MS не удосужилась это исправить.

Кстати, поскольку размер слова (и даже байта) может варьироваться, ISO-C имеет типы int _t и uint _t (плюс больше), которые следует использовать, если вам нужна переменная/параметр определенного размер в битах.

@DarkDust здесь мы говорим об ассемблере. Стандарты C не имеют значения. Кстати, я программирую сборку с 1980 года, и использовались те же имена. (ну может кроме qword)

К сожалению, AS не является ассемблером. Это уродливый, калека, жалкий мутант, созданный с единственной целью - быть серверной частью для компиляторов HLL.

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

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

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

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

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

Это вообще не оттуда. На самом деле этот термин был придуман У. Бухгольцем из IBM в конце 1950-х годов. Источник: bobbemer.com/BYTE.HTM. По словам Боба Бемера, написание «байт» было выбрано вместо «кусать», чтобы избежать путаницы (с «бит») из-за опечаток. Он бы знал. Он был там!

(Всего 30 лет? Ты просто хлюпик. Я учился программировать на системах, где естественный размер "байта" не был 8 бит :-)) )

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