Сколько бит в байт: Ошибка 404: Файл не найден

Содержание

c++ — Сколько бит в байте для компилятора GCC

Согласно спецификации C ++

Байт, по крайней мере, достаточно большой, чтобы содержать любой элемент базового набора символов выполнения (2.3) и восьмибитовых кодовых единиц формы кодирования Unicode UTF-8, и состоит из непрерывной последовательности битов, число которых равно реализация определена.

Это означает, что количество битов в байте должно быть 8 битами или более 8 битами.

Теперь, согласно gcc, количество битов определяется ABI.

https://gcc.gnu.org/onlinedocs/gcc-5.4.0/gcc/Characters-implementation.html#Characters-implementation

4.4 Персонажи

Количество битов в байте (C90 3.4, C99 и C11 3.6).

Определяется ABI

GCC основан на ABI — http://itanium-cxx-abi.github.io / CXX — ABI /

Может кто-нибудь указать мне место, где упоминается количество бит в байте?

3

Ujjwal 26 Мар 2019 в 14:23

2 ответа

Лучший ответ

Может кто-нибудь указать мне место, где упоминается количество бит в байте?

Педантично, это не так. Этот конкретный ABI использует «байт» вместо «октет» повсюду; в современную эпоху «байт» является общим синонимом «октета», потому что подавляющее большинство используемых систем имеют 8-битные байты.

Там сказано следующее:

В общем, этот документ написан как общая спецификация, которая может быть использована реализациями C ++ на различных архитектурах. Тем не менее, он содержит специфичный для процессора материал для 64-разрядной ABI Itanium, идентифицированный как таковой. Там, где описывается структура структурированных данных, мы обычно принимаем размеры элементов Itanium psABI.

… И все чипы Itanium имеют 8-битные байты.

Если вы используете какой-то другой чип, и у него другое число бит на байт, и вы нашли компилятор, предназначенный для указанного чипа, то у вас есть альтернативный ответ. (Но это не так, а вы нет.)

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

Я очень редко буду писать static_assert(CHAR_BIT == 8), если я чувствую себя особенно параноиком. В целом, вы можете положиться на это, если вы не нацелены на что-то действительно экзотическое.

4

Lightness Races in Orbit 26 Мар 2019 в 11:42

Стандарт C ++ (и, следовательно, большинство компиляторов) эффективно гарантирует только то, что char — это не менее 8 непрерывных битов. Для любой конкретной компиляции фактическое количество битов зависит от целевой архитектуры ЦП.

Однако вам придется очень постараться найти целевой процессор, который в большинстве случаев не имеет 8-битных байтов.

Если вам нужно написать код, который зависит от предположения о 8-битном байте, то вы всегда можете static_assert(CHAR_BIT == 8) предотвратить любую компиляцию, которая нарушает ваше предположение.

4

JMAA 26 Мар 2019 в 11:40

Что такое бит байт. Сколько бит в байте? Особенности двоичной системы счисления

ЕдиницаАббревиатураСколько
битб0 или 1бит
байт
Б
8 бит
килобиткбит (кб)1 000 бит
килобайтКБайт (KБ)1024 байта
мегабитмбит (мб)1 000 килобит
мегабайтМБайт (МБ)1024 килобайта
гигабитгбит (гб)1 000 мегабит
гигабайтГБайт (ГБ)1024 мегабайта
терабиттбит (тб)
1 000 гигабит
терабайтТБайт (ТБ)1024 гигабайта

Байт (byte) — единица хранения и обработки цифровой информации. Чаще всего байт считается равным восьми битам, в этом случае он может принимать одно из 256 (2’8) различных значений. Для того, чтобы подчеркнуть, что имеется в виду восьмибитный байт, в описании сетевых протоколов используется термин «октет» (лат. octet).

Килобайт (кБ, Кбайт, КБ) м., скл. — единица измерения количества информации, равная в зависимости от контекста 1000 или 1024 (2’10) стандартным (8-битным) байтам. Применяется для указания объёма памяти в различных электронных устройствах.
1 килобайт (КБ) = 8 килобит (Кб)

Мегабайт (Мбайт, М, МБ) м., скл. — единица измерения количества информации, равная, в зависимости от контекста, 1 000 000 (10’6) или 1 048 576 (2’20) стандартным (8-битным) байтам.

Гигабайт (Гбайт, Г, ГБ) — кратная единица измерения количества информации, равная 2’30 стандартным (8-битным) байтам или 1024 мегабайтам. Применяется для указания объёма памяти в различных электронных устройствах.

Терабайт (Тбайт, ТБ) м., скл. — единица измерения количества информации, равная 1 099 511 627 776 (2’40) стандартным (8-битным) байтам или 1024 гигабайтам. Применяется для указания объёма памяти в различных электронных устройствах.

Петабайт (ПБайт, ПБ) м., скл. — единица измерения количества информации, равная 25’0 стандартным (8-битным) байтам или 1024 терабайтам. Применяется для указания объёма памяти в различных электронных устройствах.

Эксабайт (Эбайт, Э, ЭБ) — единица измерения количества информации, равная 26’0 стандартным (8-битным) байтам или 1024 петабайтам. Применяется для указания объёма памяти в различных электронных устройствах.

Зеттабайт (Збайт, З, ЗБ) — единица измерения количества информации, равная 27’0 стандартным (8-битным) байтам или 1024 эксабайтам. Применяется для указания объёма памяти в различных электронных устройствах.

Йоттабайт (Йбайт, Й, ЙБ) — единица измерения количества информации, равная 1024 стандартным (8-битным) байтам или 1000 зеттабайтам. Применяется для указания объёма памяти в различных электронных устройствах.

1 Йoттабайт можно представить как:

103 = 1 000 Зеттабайтов

106 = 1 000 000 Эксабайтов

109 = 1 000 000 000 Петабайтов

1012 = 1 000 000 000 000 Терабайтов

1015 = 1 000 000 000 000 000 Гигабайтов

1018 = 1 000 000 000 000 000 000 Мегабайтов

1021 = 1 000 000 000 000 000 000 000 Килобайтов

1024 = 1 000 000 000 000 000 000 000 000 Байтов

Конвертор величин байт, бит, килобит, килобайт, мегабит, мегабайт, гигабит, гигабайт, терабит, терабайт, петабит, петабайт, эксбит, эксбайт

7,2 терабайта на один размером с обычный DVD диск

Австралийские исследователи создали технологию, которая теоретически позволяет записывать 7,2 терабайта данных на один диск размером с обычный DVD. Об этом сообщает Nature News, а статья исследователей появилась в журнале Nature.

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

Столь высокой плотности записи информации ученым удалось добиться при помощи нескольких технических приемов. Во-первых, исследователи использовали лазеры нескольких цветов. Дело в том, что лучи определенной длины волны воздействуют только на штыри с определенным соотношением длины и толщины. Во-вторых, исследователи использовали лучи с различной поляризацией, которые действуют на штыри, ориентированные определенным образом.

Используя лучи разного цвета и разной поляризации, представляется возможным записывать информацию на одном и том же регионе диска несколько раз. Так, например, два вида поляризации и три цвета (то есть в общей сложности шесть возможных комбинаций) позволяют записать 1,6 терабайта данных на диск размером с DVD. Если добавить еще один вариант поляризации, то получится диск объемом 7,2 терабайта.

Чтобы считывать информацию, исследователи используют слабый луч лазера, который не расплавляет наноштыри. При этом на выходе получается читаемый сигнал: эмпирически установлено, что наноштыри «откликаются» на слабый лазер гораздо лучше, чем, например, сферические наночастицы, в которые штыри превращаются после расплава.

Слабой стороной новой технологии является то, что исследователи используют лазерные импульсы очень короткой длительности — порядка нескольких фемтосекунд. Подобные лазеры дороги и сложны в производстве. Ученые надеются, что дальнейшее развитие технологии позволит обойти это ограничение. Они рассчитывают, что промышленное использование их открытия начнется примерно в 2020-х годах. ♌

Ловим Золотую рыбку в Интернете

Что такое Бит и Байт?

Давайте разберемся, что же такое бит и байт. Бит, наименьшая единица, которая измеряет количество информации. Один содержит мало информации в отличие от группы битов. В компьютере все данные хранятся и обрабатываются в виде знаков. Обычно используются всего два знака – цифры 0 и 1. Совокупность этих двух цифр называется двоичный код, а сами цифры принято называть двоичными цифрами или коротко битами. Компьютер различает 0 и 1 благодаря электрическим импульсам в электронных цепях. Если в цепи нет импульса – это цифра 0, если импульс есть, то это 1. Таким образом, в виде комбинации 0 и 1, внутри компьютера хранится абсолютно вся информация от фотографий до музыки. Наравне с понятием бита используется понятие байт.

Совокупность компьютерных данных из 8 бит называется байтом. 8 битов дают основу для представления символов, например буквы «А» и двоичной арифметики. То есть байт является командой битов, отвечающих за определенную деталь в файле. Каждый байт имеет в памяти компьютера уникальный адрес. По соглашению биты, и байты имеют нумерацию от 0 до 7 справа налево. Например: номер бита – 76543210, а значение его — 0 1 0 0 0 0 0 1 и в итоге, если передать это значение на принтер, там будет сгенерирована буква «А». Количество включенных битов в байте должно быть нечетно. Когда команда обращена к байту, компьютер проверяет этот байт и если число включенных битов четное, система выдает ошибку. Ошибка четности может быть результатом сбоя оборудования или случайным явлением, но это происходит очень редко.

Во время обработки данных, в компьютере по электронным цепям проходят электрические импульсы. Цепи состоят из проводников и электронных микро устройств, которые называются логическими вентилями. Импульсы, проходящие через эти вентили, могут «гаситься». Таким образом, обрабатываются данные. Объединяя логические вентили, создаются сложные комбинации, выполняющие операции – запоминают, сравнивают, складывают, сравнивают числа и прочее.

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

Шины делятся на три типа: шина данных, управления и адресная шина. Шина данных обменивается данными между процессором и устройствами ввода, между процессором и памятью компьютера. Инструкции от процессора ко всем узлам компьютера передаются по шине управления. С помощью адресной шины передается информация о местоположении или адресе данных.

Бит и байт это довольно маленькие величины, поэтому их используют с приставками кило, мега и гига. Давайте теперь поговорим о величине, которая измеряет скорость интернета. Скорость интернета, это количество отправляемой и получаемой информации вашим персональным компьютером в единицу времени. Качество единицы времени — секунда, а качество количества получаемой информации – килобит или мегабит. Например, если ваша скорость показывает 128 Kbps, значит, что ваше соединение пропускает 128 килобит что приравнивается к 16 килобайтам. Для того что бы узнать много это или мало воспользуйтесь тестами для определения скорости соединения с Интернетом.

Что ныне измеряется в битах и байтах? Среднестатистический пользователь ПК о таких единицах измерения информации практически забыл. И забыл бы полностью, если бы не путаница между килобитами и килобайтами, в которых измеряются скорости путешествия в сети Интернет. Между тем, еще со школы каждый знает, что приставка кило- множит исходный показатель на тысячу. Пытаясь разобраться, пользователь делит, умножает и окончательно путается в дебрях арифметики. Возьмемся же за ключевые понятия — бит и байт — и посмотрим, под каким соусом их едят.

Определение

Бит — минимальная единица измерения количества информации (подобно букве в лингвистике). В двоичной системе счисления бит равен одному разряду.

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

Сравнение

В одном байте — 8 бит. Бит может принимать значение 0 или 1, байт — от 0 до 256. Когда речь идет о скорости передачи данных, значения бит/с и байт/с (Кбит/с и Кб/с соответственно) существенно отличаются. В килобитах считается скорость подключения, или количество полученной/переданной информации за единицу времени. В килобайтах обычно отображается скорость скачивания файлов. Таким образом, при скорости подключения 128 Кбит/с скорость скачивания (в идеальных условиях) будет 16 Кб/с, то есть документ размером 160 Кб загрузится за 10 с.

Выводы сайт

  1. Бит — минимальная единица измерения, байт — единица хранения и обработки цифровой информации
  2. В одном байте 8 бит
  3. При определении скорости подключения обычно оперируют битами, скорости скачивания файлов — байтами.

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

В современной вычислительной технике (компьютерах) наименьшей единицей информации является бит. Одним битом кодируется один единственный символ в двоичной системе. То есть один бит, позволяет записать в какой-либо из разрядов значение «0» или «1».

Сколько бит в байте

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

1 1 1 1 1 1
2 7 2 6 2 5 2 4 2 3 2 2 2 1 2

В первой строке таблицы мы записали 1 байт информации, а именно «10110111». Для того чтобы понять, какое число кодируется этим байтом, необходимо возводить двойку в степень, соответствующую разряду каждого бита справа налево, начиная с нулевого разряда. Если в каком-либо разряде байта стоит бит, содержащий «0» (в данном случае это третий и шестой разряды), то этот разряд суммировать не нужно. Таким образом, закодированное нами число в 1 байте равно 183. Соответственно, максимальное число будет выглядеть так: 11111111 и будет равно 256.

Другие единицы измерения информации

После того, как мы разобрались в том, что 1 байт состоит из 8 бит, стоит изучить следующие «старшие» единицы измерения. Они образуются приставками к байту из СИ (система интернационал),

  • Кило,
  • Мега,
  • Гига,
  • Тера.

Сложность здесь состоит в том, что при переходе от одной приставки к другой необходимо использовать кратность 1024, а не 1000, принятой в физических единицах измерения. Соответственно в 1 килобайте содержится 1024 байта, а чтобы перевести мегабайты в байты потребуется дважды перемножить объем информации в Мбайт на 1024. Отвечая на вопрос, чему равен 1 гигабайт в байтах, потребуется трижды произвести деление объема байтов на 1024.

Таблица единиц информации

Для того чтобы быстро ориентироваться в единицах информации и уметь быстро перевести мегабайты в гигабайты, можно пользоваться следующей таблицей единиц информации:

Бит Байт Килобайт Мбайт Гигабайт
Бит 1 8 8192 8338608 8589934592
Байт 8 1 1024 1048576 1073741824
Килобайт 8192 1024 1 1024 1048576
Мегабайт 8338608 1048576 1024 1 1024
Гигабайт 8589934592 1073741824 1048576 1024 1
Расчёт единиц измерения информации от бита до гигабайта

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

Частая ошибка при выборе тарифного плана

Любой интернет-провайдер, предоставляющий Вам доступ к сети интернет предлагает на выбор большое количество тарифов. При этом скорость интернет соединения обозначается как «Mb/s», либо «mbps», что означает «мегабит в секунду» в то время как большое количество людей ошибочно принимают это обозначение за «мегабайт в секунду», и таким образом на выходе получают скорость интернет соединения в 8 раз медленнее. Теперь вы знаете, сколько мегабит в мегабайте и без труда переведете мегабайт в мегабит. Для удобства перевести байты можно использовать специальный конвертер байт.

Таким образом, если в тарифном плане указана скорость интернет соединения 40mbps, то при скачивании файлов из сети интернет, вы будете иметь скорость 5 мбайт в секунду. Ведь скачиваемые из сети файлы измеряются именно в байтах, а не в битах. Все дело здесь в том, что при получении и передачи данных в сети интернет Вы постоянно посылаете и принимаете код, а как Вы уже знаете, кодирование осуществляется за счет бит, поэтому Ваш интернет провайдер вынужден указывать скорость интернет соединения именно в мегабитах (mbps), заставляя вас переводить мегабиты в мегабайты. Для того чтобы узнать сколько килобайт мобильного интернета предоставляет ваш оператор, необходимо почитать соответствующие документы по тарификации.

Сколько времени необходимо для скачивания файла

При скачивании аудио, видео и других файлов из сети интернет, необходимо понимать, за какое время будет произведено получение этих данных. К примеру, средний полнометражный фильм в HD-качестве с хорошим озвучиванием будет иметь размер порядка 5 гигабайт. Несложно посчитать, что 5 гигабайт = 5120 мбайт = 40960 мегабит. Остается только поделить размер файла в мегабитах на скорость интернет соединения в тех же мегабитах. В случае интернет соединения 40мбит/с, загрузка файла займет 1024 секунды, что составляет чуть более 17 минут.

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

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

История вопроса о байтах и битах

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

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

Еще одна версия, почему приняли стандарт равный восьми, заключается в том, что все числа, связанные с компьютером, кратны именно восьмёрке. Пример: оперативная память. Вначале идет 128 мегабайт, далее 256, чуть позже 512, а потом уже идут гигабайты (один, два, четыре, восемь и т.д.) Вот и результат: четыре бита — слишком мало, 16 никогда не применялись, а вот восемь — как раз то, что надо.

Переводим биты в байты и обратно

Давайте теперь попробуем ответить на вопрос, сколько бит содержит 2 байта? Итак, мы знаем, что один байт равен восьми, соответственно, восемь нужно умножить на два, получится шестнадцать. Получается, что в двух байтах содержится шестнадцать бит.

Полезно знать, что 1024 байта составляют килобайт (или можно сказать, что килобайт — это 8192 байта), 1024 килобайта — мегабайт, а 1024 мегабайта — гигабайт. Соответственно, терабайт — это уже 1024 гигабайта. Надо сказать, что в последнее время информацию стали мерить уже и терабайтами, поэтому и эти знания нам вскоре пригодятся.

Возможно, вам также будет интересно узнать и другую информацию по этой теме из нашей статьи .

Сколько байтов и битов содержит 1 гбайт. Сколько бит в байте? Что такое бит и байт

Сегодня количество бит в 1 байте информации отличается от той цифры, которая была при разработке первых компьютеров

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

Хранение данных в компьютерной памяти

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

Чаще всего ячейка совпадает с одним байтом. Но, поскольку архитектура компьютера может иметь разную разрядность, в ячейке может умещаться 2,4 и 8 байт. Электронные устройства воспринимают байт как мельчайшую единицу информации, хотя на самом деле он ещё делится на более элементарные ячейки – биты. Если в байте может быть закодирован единичный символ – цифра или буква, то в один бит они не «влезут». Хотя технически допустимо оперирование контроллеров единичными битами, но практически это почти не используется. Обычно происходит обращение либо к целым байтам, либо к их группам.

Что такое бит?

Чтобы понять, скольким битам равен 1 байт, нужно понять, что представляет собой бит. Часто битом называют мельчайшую единицу информации, но это определение не слишком точное, поскольку достаточно размыто само понятие информации. Более точно выглядит формулировка, определяющая бит, как букву компьютерного алфавита. Сам термин «бит» является сокращением английского словосочетания «binary digit», что в переводе на русский означает двоичная цифра. Компьютерный алфавит до невозможности прост, поскольку включает в себя лишь два символа – 0 и 1, что выражается как отсутствие или наличие сигнала или ложь и истина. С помощью этого простейшего набора логически можно описать абсолютно всё. Не более чем миф третье состояние компьютера – молчание, когда он не передаёт сигналы.

С точки зрения информации сам по себе символ не имеет никакой ценности, поскольку при виде нуля или единицы совершенно невозможно понять, к какого рода информации данное значение может относиться. И независимо от того, 1 байт сколько бит включает, любые программы, тексты и картинки состоят лишь из нулей и единиц. Поэтому в качестве самостоятельной единицы бит оказался не слишком удобен. Поэтому для кодирования удобоваримой информации биты потребовалось объединить в байты.

Что такое байт?

Если бит содержит в себе букву компьютерного алфавита, то байт можно сравнить со словом. В одном байте может содержаться целое число или часть большого числа, текстовый символ, два маленьких числа и прочее. То есть в нём уже присутствует минимальный объём осмысленной информации.

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

В современных компьютерах это всегда 8 бит. Но если бит может иметь только 2 значения, то 8 битов байта дают уже 256 различных вариантов (два в восьмой степени даёт число 256).

Например, один бит даёт значения 0 или 1. Два бита уже позволяют комбинации: 00, 01, 10 и 11. Если же используется 8 бит, то в диапазоне между 00000000 и 11111111 помещается именно 256 значений. Не так сложно и запомнить число битов в байте, и сколько значений может принимать каждый байт. В зависимости от кодировки (Юникод, ASCII и прочих) каждое сочетание несёт в себе ту или иную информацию. По этой причине попытка ввести данные на русском языке приводит к их выводу в виде своеобразных символов.

Особенности двоичной системы исчисления

Двоичная система позволяет все те же манипуляции с числами, что и классическая десятичная система: составленные из нулей и единиц числа можно складывать, умножать, делить и вычитать. Но при этом вся математика здесь обходится двумя цифрами, из-за чего она гораздо удобнее для шифрования информации. Любая позиционная система исчисления имеет разряды для чисел: единицы, десятки, сотни и т.д. Но если в десятичной системе максимальная величина одного разряда равна 9, то в бинарной системе это 1. Но поскольку в бинарном разряде есть лишь два значения, то длина бинарных числе очень быстро возрастает. Например, число 9 там выразится как 1001, то есть потребуется 4 символа, при этом каждый двоичный символ будет занимать один бит.

Почему информацию шифруют в двоичном коде?

Десятичная кодировка более удобна для ввода и вывода данных, зато двоичная облегчает процесс её преобразования. Есть ещё и другие системы, основанные на 8 и 16 символах, которые используются для переводов машинных кодов в приемлемую форму. С точки зрения логики двоичная система идеальна. Условно единице присвоено значение «да» или истинности, а ноль в противовес означает «нет» и ложь. Любой прямой вопрос можно разложить на несколько более простых вопросов, имеющих ответы «да» и «нет». А третий вариант («неизвестно») окажется совершенно избыточным. Исследования в области вычислительной техники привели к изобретению трёхразрядных единиц хранения данных, которые получили название тритов.

Диапазон их значений следующий:

  • 0 означает пустую ёмкость;
  • 1 наполовину заполненная ёмкость;
  • 2 полная ёмкость.

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

Видео о том, сколько бит в 1 байте информации

Всегда ли байт содержал 8 бит?

Ответ на вопрос, сколько битов содержится в 1 байте, не всегда был одинаковым, а когда-то он и вовсе не имел точного ответа. Под байтом первоначально понималось машинное слово – такое количество бит информации, которое ЭВМ могла обработать за один такт или рабочий цикл. Когда ЭВМ занимали целые залы, её логические схемы оперировали байтами разных размеров: у одних было 6 бит, а в первых моделях компьютеров IBM байт состоял из 9 бит. На данный момент практически победил стандарт байта из 8 бит, поэтому его даже называют единицей информации, включающей 8 бит. Но в некоторых архитектурах по-прежнему используются 32-битные байты, считающиеся за машинное слово. Подобная архитектура используется в сигнальных процессорах и суперкомпьютерах, а во всех широко использующихся ноутбуках, компьютерах и мобильных устройствах только 8-битные.

Почему победил именно 8-битный стандарт?

8-битный стандарт байта стал доминантным из-за победы на рынке платформы IBMPC, которая использовала чрезвычайно популярный процессор Intel 8086. Благодаря её распространённости в 70-х годах прошлого века 8-битный байт стал фактически стандартом. Удобство 8-битного стандарта заключается в том, что в нём точно умещаются две цифры десятичной системы, в то время как 6-битная система способна вместить только один знак, при этом незаполненными останутся 2 бита. В 9-битный байт вписываются 2 знака, но остаётся неиспользованным один бит. К тому же восемь – это два в кубе, что также считается удобным.

Где применяются биты с байтами?

Неопытные пользователи часто путают обозначения бита и байта. Им нужно, в первую очередь, обратить внимание на написание обозначения. Сокращение байта использует заглавную букву «Б» или «B» в английском варианте, а более мелкому биту достались соответственно строчные буквы «б» или «b». Правда есть вероятность, что перепутан регистр, а некоторые программы переводят весь текст автоматически в верхний или нижний регистры. Поэтому лучше просто разделить то, что обычно измеряется в байтах, а что – в битах.

В байтах традиционно выражаются объёмы: флешки, жёсткого диска, дискеты, CD и любого другого носителя информации, причём в более масштабных единицах (килобайтах, мегабайтах, гигабайтах и т.д.).

Битами же измеряют скорость или пропускную способность канала, например, линии Интернета, здесь также господствуют порядковые величины – мегабиты и т.д. Скорость скачивания файлов также отражается в битах, которые при желании можно перевести в байты – просто умножить известную величину на восемь. Наоборот, делением объёма в байтах на восемь можно получить биты, хотя практически это вряд ли кому необходимо.

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

Из этой статьи вы узнаете, сколько бит в одном байте, килобайте, мегабайте, гигабайте, терабайте.

Если вы имели дело с носителем информации, то наверняка слышали про биты, байты, мегабайты, гигабайты или терабайты. Но не все люди знают, как связаны между собой эти единицы измерения. Об этом известно профессионалам в области IT-технологий и просто продвинутым людям, которые знакомы с цифровой информацией.

Мы привыкли исчислять величины десятичными системами исчисления, и если есть приставка «кило», значит, нужно умножать на тысячу. Но при измерении цифровой информации существует другая система исчисления.

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

Часто пользователи задаются вопросом: что больше: килобайт или мегабайт, или гигабайт, или терабайт?
Из вышеприведенной информации видно, что самый большой объем памяти исчисляется в терабайтах, а самый маленький в битах.

Таблица перевода байтов в килобайты, мегабайты, гигабайты или терабайты наиболее удобна для восприятия.

Теперь вы знаете, что мегабайт больше килобайта, но меньше гигабайта. Самая большая единица измерения — это терабайт.
В настоящее время специалистам IT известны и другие единицы измерения такие, как петабайт, эксабайт, зеттабайт и йоттабайт. Но наиболее популярны для измерения памяти именно биты, байты, кило-, мега- , гига- и терабайты.

Если под рукой есть таблица перевода больших единиц в меньшие, то просто вычислить, чему будет равен, например, 2 мегабайта или гигабайта. Точный результат конвертирования:

  • 1 МБ = 8388608 битам
  • 1 ГБ = 8589934592 битам
  • 2 МБ = 16777216 битам
  • 2 ГБ = 17179869184 битам

Еще один распространенный вопрос среди пользователей глобальной сети: что больше мегабайт или гигабайт для интернета? Чаще именно гигабайт используется для измерения количества информации в интернете. Чтобы понять, что больше, нужно обратиться к цифрам. Гигабайт больше мегабайта и равен 1024 МБ.

Если вы не можете понять, какая единица измерения больше, а какая меньше, вспомните метры и сантиметры. В одном метре 100 см, так же как и в гигабайтах определенное количество мегабайтов, но не сто, а намного больше.

Видео: 08 бит байт системы счисления

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

История вопроса о байтах и битах

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

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

Еще одна версия, почему приняли стандарт равный восьми, заключается в том, что все числа, связанные с компьютером, кратны именно восьмёрке. Пример: оперативная память. Вначале идет 128 мегабайт, далее 256, чуть позже 512, а потом уже идут гигабайты (один, два, четыре, восемь и т.д.) Вот и результат: четыре бита — слишком мало, 16 никогда не применялись, а вот восемь — как раз то, что надо.

Переводим биты в байты и обратно

Давайте теперь попробуем ответить на вопрос, сколько бит содержит 2 байта? Итак, мы знаем, что один байт равен восьми, соответственно, восемь нужно умножить на два, получится шестнадцать. Получается, что в двух байтах содержится шестнадцать бит.

Полезно знать, что 1024 байта составляют килобайт (или можно сказать, что килобайт — это 8192 байта), 1024 килобайта — мегабайт, а 1024 мегабайта — гигабайт. Соответственно, терабайт — это уже 1024 гигабайта. Надо сказать, что в последнее время информацию стали мерить уже и терабайтами, поэтому и эти знания нам вскоре пригодятся.

Возможно, вам также будет интересно узнать и другую информацию по этой теме из нашей статьи .

Вы знаете сколько памяти для хранения информации у вашего компьютера? Вы всегда путаетесь что такое КБ (килобайт), МБ (мегабайт), ГБ (гигабайт) ?

В этой статье мы попробуем выяснить, что такое килобайт , мегабайт , гигабайт , а также, что из них больше KB или MB или GB ?

Понятие бита

Бит (англ. bit ) определяется как переменная, которая может иметь только два значения — 1 или 0. Бит является разрядом двоичного кода . Именно различные сочетания 1 и 0 лежат в основе хранения информации и задания различных команд в вычислительной технике.

Байт

Блок цифровой информации в вычислительной технике называется байт (англ. byte ). Это упорядоченный набор битов. Исторически сложилось так, что байтом считается такое количество бит, которое используется для кодирования одного текстового символа в компьютере. Размер байта, как правило, зависит от аппаратного обеспечения, но сейчас принято считать, что один байт равен 8 бит , и всегда кратен 2. Количество бит для хранения информации всегда кратно 2. Байт еще называют «октет » (лат. octet ). Таким образом, байт – это самый маленький элемент данных, которые могут быть обработаны на компьютере любого типа.

Кто больше КБ или МБ?

Мы разобрались, что же такое биты и байты в компьютерном мире. Следующий термин, который мы должны знать – это килобайт (КБ ). В двоичном исчислении Килобайт составляет 1024 байт и представляется в виде 2 в десятой степени. В десятичном исчислении килобайт часто приравнивают к 1000 байтам. Отсюда и начинается путаница в обозначении объемов памяти. Десятичные килобайты всегда меньше двоичных килобайт, которые в свою очередь являются более точными.

Как и в случае с Килобайтами, Мегабайты также имеет два значения. Когда расчет делается в двоичной системе, то Мегабайт равен 1048576 байт или 2 в 20-ой степени. В десятичной системе используется понятие Мегабайта равное 1000000 байт. В десятичной системе Mb часто принимают за мегабит .

Пользователи часто спрашивают, что больше KB или MB ? Еще большую путаницу вносят сами производители компьютерной техники, использующие в описании параметров своей продукции понятия килобайтов или мегабайтов как в десятичной системе, так и в двоичном формате. Например, производители жестких дисков на этикетке часто указывают объем в десятичной системе. Поэтому винчестер с указанным объемом 160ГБ на самом деле имеет 163840 мегабайт памяти.

Ниже представлена таблица соответствия в двоичной системе

1 бит = 1 или 0
1 ниббл = 4 бит
1 байт = 8 бит
1 КБ (один килобайт) = 1024 байт
1 МБ (один мегабайт) = 1024 КБ = 1048576 байт

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

1 кбит/с = 1000 бит в секунду
1 Мбит/с = 1000000 бит в секунду

Из статьи становится ясно, что MB всегда больше, чем KB, независимо от того, какую систему исчисления вы используете – двоичную или десятичную.

Также есть разница в написании этих понятий. Сокращенного названия для бита не существует. Поэтому для обозначения 1000000 бит используется термин Гбит , а для 1000000 байт применяют сокращение 1 ГБ .

Для обозначения скоростей передачи данных используют следующие сокращения: 1 килобит = kbps , а 1 килобайт = Kbps или kBps .

Времена аналоговых носителей ушли в прошлое, сейчас, любая информация хранится в цифровом виде. Работают с цифровыми данными не только персональные компьютеры, но и практически любая другая современная техника, например: мобильные телефоны, MP3 плееры, цифровые фотоаппараты, видеокамеры и даже телевидение стремительно переходит на цифровой сигнал.

Аналоговая техника используется преимущественно в узких кругах любителей качественного звука (виниловые пластинки) или пленочных снимков, сравнимых по качеству съемки с зеркальными фотоаппаратами премиального уровня. Кроме того, не стоит забывать, что любой звук на выходе преобразуется в аналоговый сигнал, качество которого, напрямую зависит от стоимости цифро-аналогового преобразователя (ЦАП). Что в свою очередь вынуждает людей, либо платить огромную сумму за качественный ЦАП, либо использовать аналоговые системы. Давайте же разберемся, что такое килобайт, мегабайт, гигабайт, терабайт.

Что такое цифровой сигнал

Цифровой сигнал представляет собой электрический импульс, состоящий из двух значений, единицы и нуля. Если есть напряжение, ставится единица, если его нет, ставится нуль. Данный способ наиболее удобен для обработки данных процессором и другой электроникой. Таким образом, цифровой поток, приблизительно выглядит следующим образом — 1 0 0 0 1 1 0 1.

Бит

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

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

Одного байта достаточно, чтобы закодировать один символ в текстовом документе. С помощью байта можно закодировать 256 значений. Например, у двух бит, может быть четыре позиции — 00, 11, 01 и 10. В трех битах, можно передать шесть позиций — 111, 000, 100, 110, 010, 001. С помощью же восьми бит, или одного байта, можно закодировать 256 разновидностей значений.

Наверняка многие помнят игровые консоли 90-х годов, называемые восьмибитными приставками. Дело в том, что данные консоли, могли передавать лишь восьмибитное изображения. Изображения с 256-ю разновидностями цвета на один пиксель.

Соответственно, появившиеся чуть позже 16 битные приставки могли передавать 65535 цветов.

Килобайт

Как уже можно догадаться, как байт состоит из битов, так и килобайт состоит из байтов. В одном килобайте используется 1024 байта. Чтобы выяснить, почему именно 1024, а не 1000, необходимо окунутся в истоки создания вычислительной техники. Если вкратце, дополнительные байты служили для предотвращения повреждения документов.

В нескольких килобайтах может поместиться небольшой текст, в Word файле или текстовом документе. Одно СМС сообщение может занимать в среднем 1 — 2 килобайта.

Мегабайт

Более привычное слово для современных пользователей вычислительной техники. Один мегабайт состоит из 1024 килобайта или более миллиона байт.

В мегабайтах измеряются музыкальные композиции, фотографии из цифровых фотоаппаратов, короткие видеоролики или оцифрованные книги.

В те времена, когда CD плееры пользователи высокой популярностью, выпускались CD диски, объемом 700 мегабайт, на который можно было записать либо 80 минут аудиозаписи в wav формате, либо более сотни MP3 .

В одном гигабайте содержится 1024 мегабайта. Чаще всего в гигабайтах измеряются фильмы в более или менее приемлемом качестве. Еще недавно, негласным стандартом были фильмы 600 мегабайт, сейчас же, из-за увеличения диагонали монитора, необходимы фильмы объемом от 2 гигабайт, а желательно и все четыре. Почему именно 4 гигабайта? Все достаточно просто, размер 600 мегабайт появился не просто так, именно такой размер умещался на CD дисках, в те времена, когда этот носитель был наиболее распространен. Со временем, большую популярность приобрел DVD диск, имеющий объем 4.7 Гб, откуда и размер файла 4 гигабайта. Обычно такого размера достаточно, чтобы видео имело разрешение 720p.

Также в гигабайтах измеряется объем , как на компьютерах, так с недавних пор и на смартфонах. Минимальный объем ОЗУ для персонального компьютера составляет 2 гигабайта. При меньшем объеме, придется использовать более старые операционные системы, например, Windows XP.

Стандартный C ++

Встроенные / внутренние / примитивные типы данных

Может ли

sizeof (char) быть 2 на некоторых машинах? Например, как насчет двухбайтовых символов?

Нет, sizeof (char) всегда 1. Всегда. Это никогда не бывает 2. Никогда, никогда, никогда.

Даже если вы думаете о «символе» как о многобайтовой штуке, char — нет. sizeof (char) всегда ровно 1. Нет исключения, когда-либо.

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

Какие единицы размера

из ?

байт.

Например, если sizeof (Fred) равно 8, расстояние между двумя объектами Fred в массиве Fred s будет ровно 8 байт .

В качестве другого примера это означает, что sizeof (char) — это один байт . Правильно: один байт. Один один один, ровно один байт, всегда один байт. Никогда не два байта. Без исключений.

Ого, а как насчет машин или компиляторов, поддерживающих многобайтовые символы.Вы хотите сказать, что «персонаж»

и символ могут отличаться?!?

Да, верно: то, что обычно называют «символом», может отличаться от того, что C ++ называет символ .

Мне очень жаль, если это больно, но поверьте мне, лучше сразу избавиться от всей боли. Сделай глубокий вдох и повторяйте за мной: «символ и символ могут отличаться». Вот так, разве не лучше? Нет? Что ж, продолжай читать — становится хуже.

Но, но, а как насчет машин, у которых

char имеет более 8 бит? Конечно, вы не утверждаете, что байт C ++ может иметь более 8 бит, не так ли?!?

Да, верно: байт C ++ может иметь более 8 бит.

Язык C ++ гарантирует, что байт всегда должен иметь не менее 8 бит. Но есть реализации C ++, которые иметь более 8 бит на байт.

Хорошо, я мог представить машину с 9-битными байтами. Но уж точно не 16-битные или 32-битные байты, верно?

Неправильно.

Я слышал об одной реализации C ++, которая имеет 64-битные «байты». Вы прочитали правильно: байт на этом реализация имеет 64 бита. 64 бита на байт. 64. Как в 8 раз 8.

И да, вы правы, сочетание с вышеизложенным будет означать, что char в этой реализации будет иметь 64 бита.

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

символов, сек и символах еще раз?

Вот правила:

  • Язык C ++ дает программисту впечатление, что память представлена ​​как последовательность каких-то вызовов C ++. «Байты.”
  • Каждая из этих вещей, которые язык C ++ называет байтом, имеет не менее 8 бит, но может иметь более 8 бит.
  • Язык C ++ гарантирует, что char * ( char указателей) могут адресовать отдельные байты.
  • Язык C ++ гарантирует отсутствие битов между двумя байтами. Это означает, что каждый бит в памяти является частью байт. Если вы проделаете свой путь через память с помощью символа * , вы сможете увидеть каждый бит.
  • Язык C ++ гарантирует, что нет битов, которые являются частью двух разных байтов.Это означает изменение одного байта никогда не приведет к изменению другого байта.
  • Язык C ++ дает вам способ узнать, сколько битов в байте в вашей конкретной реализации: включить заголовок , тогда фактическое количество бит на байт будет задано макросом CHAR_BIT .

Давайте рассмотрим пример, чтобы проиллюстрировать эти правила. PDP-10 имеет 36-битные слова без аппаратных средств для адресации. что-нибудь в одном из этих слов.Это означает, что указатель может указывать только на объекты на 36-битной границе: это не так. возможно, чтобы указатель указывал на 8 бит справа от того места, где указывает другой указатель.

Один из способов соблюдения всех вышеперечисленных правил — это для компилятора PDP-10 C ++ определение «байта» как 36 бит. Еще один действительный подход состоял бы в том, чтобы определить «байт» как 9 бит и смоделировать char * двумя словами памяти: первое может указывать на 36-битное слово, второе может быть битовым смещением в этом слове. В этом случае компилятору C ++ потребуется добавить дополнительные инструкции при компиляции кода с использованием указателей char * .Например, код, созданный для * p = 'x' , может читать слово в регистр, затем используйте битовые маски и битовые сдвиги, чтобы изменить соответствующий 9-битный байт в этом слове. An int * все еще может быть реализовано как один аппаратный указатель, поскольку C ++ допускает sizeof (char *)! = Sizeof (int *) .

Используя ту же логику, можно также определить «байт» PDP-10 C ++ как 12-битный или 18-битный. Однако Вышеупомянутый метод не позволил бы нам определить «байт» PDP-10 C ++ как 8-битный, поскольку 8 × 4 равно 32, что означает каждый 4-й байт мы бы пропустили 4 бита.Для этих 4 битов можно использовать более сложный подход, например, упаковав девять байтов (из По 8 бит) на два соседних 36-битных слова. Важным моментом здесь является то, что memcpy () должен иметь возможность видеть каждый бит памяти: между двумя соседними байтами не может быть никаких битов.

Примечание: одним из популярных подходов, не связанных с C / C ++, на PDP-10 была упаковка 5 байтов (по 7 бит каждый) в каждый 36-битный слово. Однако это не будет работать в C или C ++, поскольку 5 × 7 равно 35, а это означает, что использование char * с для просмотра памяти будет «пропустить». бит на каждый пятый байт (а также потому, что C ++ требует, чтобы байты имели не менее 8 бит).

Что такое «тип POD»?

Тип, состоящий только из P lain O ld D ata.

Тип POD — это тип C ++, имеющий эквивалент в C и использующий те же правила, что и C для инициализации, копирование, верстка и адресация.

В качестве примера, объявление C struct Fred x; не инициализирует элементы переменной Fred x . Сделать такое же поведение происходит в C ++, Fred должен иметь , а не , иметь конструкторы.Аналогично сделать C ++ версия копирования такая же, как версия C, C ++ Fred не должен перегружать оператор присваивания. Сделать убедитесь, что другие правила совпадают, версия C ++ не должна иметь виртуальных функций, базовых классов, нестатических членов, которые являются частными или защищенными или деструктором. Однако он может иметь статические элементы данных, статические функции-члены и нестатические невиртуальные функции-члены.

Фактическое определение типа POD является рекурсивным и немного корявым.Вот , немного упрощенное определение POD: нестатические элементы данных типа POD должны быть общедоступными и могут быть любого из следующих типов: bool , любой числовой тип включая различные варианты char , любой тип перечисления, любой тип указателя данных (то есть любой тип, конвертируемый в void * ), любой тип указателя на функцию или любой тип POD, включая массивы любого из них. Примечание: указатели данных и указатели на функцию допустимы, но указатели на член — нет.Также обратите внимание, что ссылки не допускается. Кроме того, тип POD не может иметь конструкторов, виртуальных функций, базовых классов или перегруженного оператор присваивания.

Должен ли я использовать «список инициализации» или присваивание при инициализации нестатических элементов данных встроенных / встроенных / примитивных типов?

Для симметрии обычно лучше инициализировать все нестатические элементы данных в «списке инициализации» конструктора, даже те, которые относятся к встроенному / внутреннему / примитивному типу.В FAQ показано, почему и как.

Должен ли я при инициализации статических элементов данных встроенных / встроенных / примитивных типов беспокоиться о «фиаско с порядком инициализации

static »?

Да, если вы инициализируете встроенную / внутреннюю / примитивную переменную выражением, которое компилятор не выполняет оценивать только во время компиляции. В FAQ есть несколько решений для этого. (тонкая!) проблема.

Могу ли я определить перегрузку оператора, которая работает со встроенными / внутренними / примитивными типами?

Нет, язык C ++ требует, чтобы перегрузки вашего оператора принимали хотя бы один операнд «типа класса» или перечисления. тип.Язык C ++ не позволяет вам определять оператор, все операнды / параметры которого относятся к примитивным типам.

Например, вы не можете определить оператор == , который принимает два символа * и использует строку сравнение. Это хорошие новости, потому что если s1 и s2 имеют тип char * , выражение s1 == s2 уже имеет четко определенное значение: оно сравнивает два указателя , а не две указанные строки по указателям.В любом случае вам не следует использовать указатели. Используйте std :: string вместо символов * .

Если бы C ++ позволил вам переопределить значение операторов для встроенных типов, вы бы никогда не узнали, что такое 1 + 1 : он бы зависят от того, какие заголовки были включены и переопределил ли один из этих заголовков добавление, например, вычитание.

Когда я

удаляю массив некоторого встроенного / внутреннего / примитивного типа, почему я не могу просто сказать удалить вместо удалить [] ?

Потому что ты не можешь.

Послушайте, , пожалуйста, не пишите мне по электронной почте, спрашивая, почему C ++ такой, какой он есть. Это просто так. Если вам действительно нужно обоснование, купите отличную книгу Бьярна Страуструпа «Дизайн и эволюция C ++» (издательство Addison-Wesley). Но если ты настоящий цель — написать код, не тратить слишком много времени на выяснение , почему C ++ имеет эти правила, и вместо этого просто соблюдать по его правилам.

Итак, вот правило: если a указывает на массив вещей, который был выделен через new T [n] , то вы должны, должны, должен удалить его через удалить [] .Даже если элементы в массиве являются встроенными типами. Даже если они имеют тип char или int или void * . Даже если не понимаешь почему.

Как без цикла определить, является ли целое число степенью двойки?

  inline bool isPowerOf2 (int i)
{
  return i> 0 && (i & (i - 1)) == 0;
}
  

Что должно возвращать функция?

На практике случаев очень много. Вот несколько из них в случайном порядке:

  • недействительно — если возвращаемое значение не требуется, не возвращайте его.
  • local по значению — это самый простой вариант, и при небольшом внимании NRVO максимизирует производительность.
  • локально по указателю или ссылке — НЕ! . Пожалуйста, не делай этого.
  • Элемент данных
  • по значению — отличный выбор, если функция является нестатической функцией-членом, и если элемент данных можно скопировать относительно быстро, например, int . Если член данных — это что-то, что медленно копируется, у него есть потеря производительности , если вы вызываете эту функцию-член во внутреннем цикле приложения, связанного с процессором.
  • элемент данных по указателю — хорошо, но убедитесь, что вы не хотите возвращать его по ссылке, и убедитесь, что вы используете const Foo * или Foo const * , если вы не хотите, чтобы вызывающий объект изменял элемент данных. Поскольку вызывающие абоненты могут хранить указатель, а не копировать элемент данных, вы должны предупредить вызывающих абонентов в «контракте» функции-члена, что они должны не использовать возвращенный указатель после того, как этот -объект умирает.
  • элемент данных по ссылке на неконстант — хорошо, но это позволяет вызывающему объекту вносить изменения в данные вашего объекта. член, а ваш класс не «видит» изменение.Если у вас есть метод «set», который изменяет этот член данных, используйте либо вместо этого ссылка на константу или по значению. Другое дело: поскольку вызывающие абоненты могут хранить ссылку, а не копировать член данных, вы должны предупредить вызывающих абонентов в «контракте» функции-члена, что они не должны использовать возвращенный ссылка после этот -объект умирает.
  • Элемент данных
  • по ссылке на-const — хорошо, но он позволяет вашим пользователям видеть тип данных вашего члена переменные. Это означает, что , если вам когда-нибудь понадобится изменить тип ваших переменных-членов, это изменение может нарушить код. который использует ваш класс, и это один из основных моментов инкапсуляции.Вы можете уменьшить этот риск, выставив public typedef для типа этой переменной-члена (и, следовательно, типа возврата ссылки на константу). value) и предупреждая пользователей, что они должны использовать typedef , а не необработанный базовый тип. Другой реальность такова, что если вызывающий объект перехватывает эту ссылку, а не копирует объект, то базовый референт может измениться «под носом у вызывающего», даже если тип ссылается на const.Поскольку это удивляет многих программистов, разумно предупреждать вызывающих абонентов в «контракте» функции-члена. Вы также должны предупредить вызывающих абонентов об отказе от возвращенной ссылки после того, как этот -объект умер.
  • shared_ptr члену, который был выделен через новый — здесь есть компромиссы, которые очень похожи на компромиссы возврат члена по указателю или по ссылке; увидеть эти пули для компромиссов. Преимущество в том, что звонящие могут законно удерживайте и используйте возвращенный указатель после того, как этот -объект умирает.
  • local unique_ptr или shared_ptr для свободной копии базы данных. Это полезно для полиморфных объектов, поскольку он позволяет получить эффект возврата по значению, но без проблемы «нарезки». Производительность должна быть оценивается в индивидуальном порядке.
  • других — этот список приведен в качестве примера, а не в качестве исключения. Другими словами, это всего лишь отправная точка, не конечная точка.

Закон Мерфи в основном гарантирует, что ваши конкретные потребности подпадут под последний пункт, а не более ранние пули.

Преобразование байтов в секунду в биты в секунду

›› Преобразовать байт в секунду в бит в секунду

Пожалуйста, включите Javascript для использования конвертер величин.
Обратите внимание, что вы можете отключить большинство объявлений здесь:
https://www.convertunits.com/contact/remove-some-ads.php



›› Дополнительная информация в конвертере величин

Сколько байт в секунду в 1 бит в секунду? Ответ — 0,125.
Мы предполагаем, что вы конвертируете байт в секунду и бит в секунду .
Вы можете просмотреть более подробную информацию о каждой единице измерения:
байт / сек или бит в секунду
Основной единицей, не относящейся к системе СИ, для компьютерной скорости передачи данных является бит в секунду.
1 байт в секунду равен 8 битам в секунду.
Обратите внимание, что могут возникать ошибки округления, поэтому всегда проверяйте результаты.
Используйте эту страницу, чтобы узнать, как преобразовать между байтами в секунду и битами в секунду.
Введите свои числа в форму для преобразования единиц!


›› Таблица быстрого преобразования байтов в секунду в биты в секунду

1 байт в секунду в битах в секунду = 8 бит в секунду

5 байт в секунду в битах в секунду = 40 бит в секунду

10 байт в секунду в битах в секунду = 80 бит в секунду

15 байт в секунду в битах в секунду = 120 бит в секунду

20 байт в секунду в битах в секунду = 160 бит в секунду

25 байт в секунду в битах в секунду = 200 бит в секунду

30 байт в секунду в битах в секунду = 240 бит в секунду

40 байт в секунду в битах в секунду = 320 бит в секунду

50 байт в секунду в битах в секунду = 400 бит в секунду



›› Хотите другие юниты?

Вы можете произвести обратное преобразование единиц измерения из бит в секунду в байт / секунду, или введите любые две единицы ниже:

›› Обычное преобразование скорости передачи данных компьютера

байт / сек до гибибита / сек
байт / сек до мегабайта / сек
байт / сек до мебибита / сек
байт / сек до килобайт / сек
байт / сек до тебибита / сек
байт / сек до тебибита / сек
байт / сек до кибибита / сек
байт / сек до мегабита / сек
байт / сек до мебибита / сек
байт / сек до гигабита / сек


›› Определение: бит / сек

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


›› Метрические преобразования и др.

ConvertUnits.com предоставляет онлайн калькулятор преобразования для всех типов единиц измерения. Вы также можете найти метрические таблицы преобразования для единиц СИ. в виде английских единиц, валюты и других данных. Введите единицу символы, сокращения или полные названия единиц длины, площадь, масса, давление и другие типы. Примеры включают мм, дюйм, 100 кг, жидкая унция США, 6 футов 3 дюйма, 10 стоун 4, кубический см, метры в квадрате, граммы, моль, футы в секунду и многое другое!

Базовая единица компьютерной памяти — бит .Немного может содержать одно из двух значений: 0 и 1. Все остальное хранилище на компьютере на основе наборов бит. Учитывая достаточное количество битов, удивительно, как много вещей компьютер может представлять: числа, буквы, изображения, фильмы, звуки, документы, и программы, чтобы назвать несколько. байт составляет 8 бит, и на большинстве компьютеров он это наименьший удобный кусок памяти. Например, большинство компьютеров не есть инструкция немного переместиться, но есть инструкция переместить байт. Менее распространенный термин — это слово , которое представляет собой родную единицу компьютерной архитектуры данные.Слово состоит из одного или нескольких байтов. Например, компьютер, на котором 64-битные регистры и 64-битная адресация памяти обычно имеют 64-битные (8-байтовые) слова. Компьютер выполняет многие операции с исходным размером слова, а не байт за раз.

См. Https://en.wikipedia.org/wiki/Data_rate_units

Для официального определения десятичных и двоичных единиц. Вы редко встретите официальные двоичные единицы, поэтому в основном мы должны угадывать, что к чему.

Хранилище компьютера вместе с большей пропускной способностью компьютера обычно измеряется и обрабатывается в байтах и ​​наборах байтов.

килобайт или KiB , это 1024 байта

мегабайт или МБ , составляет 1,024 2 байта

гигабайт или гигабайт , составляет 1,024 3 байта

терабайт или TiB , составляет 1,024 4 байта

петабайт или ПиБ , составляет 1,024 5 байта

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

Единицы, которые часто используются не по назначению:

B Байт b бит Мегабайт в секунду 1 МБ = 8 МБ Мегабайт в секунду

Официальные единицы

Что такое бит? & Байт? — Полезное руководство простыми словами

Эй !! Как поживаешь?
Добро пожаловать в scaleyourapp.com
Сегодня мы говорим об основах… О битах и ​​байтах.
Что такое немного? и что это значит в вычислениях?

«Эта строка, которую вы только что прочитали» использует где-то около 400 бит памяти.

В нашей повседневной технически подкованной жизни очень много случаев, когда мы сталкиваемся с этими терминами «биты и байты». Как и у моего широкополосного интернет-соединения пропускная способность сети 1 мегабит в секунду. На моем компьютере 64-битный процессор. Скорость интернета не может поддерживать битрейт потоковой передачи высокой четкости и так далее.

Биты есть везде, но что это на самом деле означает?

Итак, давайте без лишних слов углубимся в это.

1. Что такое бит? Что это значит? Какая у него полная форма?

Бит означает bi nary digi t . Это полная форма Bit. Это двоичный код 0 или 1. Всего две цифры. Больше никаких цифр не требуется.

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

Бит — это атомарная, самая маленькая, самая основная единица данных / информации, которая выражается и передается в вычислениях. Также в телекоммуникациях. Наши компьютеры выполняют машинные инструкции и обрабатывают данные в виде битов.

Большинство устройств рассматривают 1 как логическое истинное значение, а 0 как логическое ложное значение. Если вы когда-либо в жизни писали код, вы могли знать о логическом типе данных — 1 для истины и 0 для false.

Хорошо, идем дальше…

Хорошо, теперь мы вроде как знаем, что немного.Что такое байт?


2. Что такое байт? И сколько бит в байте?

Байт — это набор из 8 бит. Но почему 8 бит?

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

В компьютерах наиболее распространенной единицей хранения является байт. Устройства хранения, такие как жесткие диски, DVD, компакт-диски, USB-накопители, имеют емкость в байтах, а не в битах.

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

Большинство языков программирования используют байты для хранения примитивных типов данных. Возьмем, к примеру, Java.

В языке есть несколько типов данных, таких как short, int, long, float, double, boolean и char.

короткий тип данных занимает 1 байт для сохранения в памяти. Точно так же примитивный тип данных int занимает 4 байта.
Для длинного типа данных требуется 8 байт памяти. Как было сказано ранее, логическое значение — это всего лишь один бит памяти, который равен 1 истинному и 0 ложному.

3. В чем разница между битом и байтом?

Давайте разберемся с нашими амиго в памяти. Что я об этом сказал?

Байт — это набор из 8 бит. ?

Хотя для такого непрофессионала, как я, байт обычно обозначается прописной буквой B, а бит обозначается строчной буквой b. В следующий раз обратите внимание при выборе тарифного плана.🙂

Помимо вычислений, бит также используется в телекоммуникациях, где указывается скорость сети. Он также известен как битрейт . Чем выше битрейт, тем больше вещей мы можем делать в сети. Нам всегда нужен высокий битрейт для потоковой передачи наших любимых фильмов на Netflix или для потоковой передачи PUBG на Twitch.

4. Что означает 1 Мбит / с? Как измеряются скорости широкополосного доступа?

Скорость нашего широкополосного интернета в идеале измеряется в Мбит / с (мегабит в секунду)
Чем больше мегабит в секунду, тем выше скорость интернета.

Мега означает 1 миллион. Соединение со скоростью 1 Мбит / с будет иметь битрейт от 10 до 6 бит в секунду. Идеально подходит для просмотра веб-страниц в Интернете и просмотра видео на YouTube, но не для потоковой передачи игровых видео или просмотра Netflix.

Итак, предположим, у вас есть широкополосное подключение к Интернету со скоростью 10 Мбит / с Мегабит в секунду. Как вы думаете, сколько времени потребуется для загрузки файла размером 10 МБ Мегабайт?

1 сек? Ха…

1 мегабайт в 8 раз больше 1 мегабита. Итак, в идеале загрузка файла должна занимать 8 секунд.

В те времена, когда у нас были 16-битные картриджи с играми Mario. Для измерения размера чипов использовался мегабит.

Ок… Переход на

5. Сколько бит составляет слово?

В идеале это зависит от архитектуры компьютера. Но если предположить, что 1 символ состоит из 2 байтов. Слово состоит из 5 символов, что в сумме означает 10 байт.

Это займет ок. 10 * 8 = 80 бит для хранения слова из 5 символов.

6.Как биты хранятся в памяти компьютера?

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

7. Что означает 32-битный и 64-битный компьютерный процессор?

Во времена Microsoft XP у нас были 32-битные системы, но со временем, с развитием техники, 64-битные компьютеры стали нормой.

32-битные и 64-битные термины обозначают объем информации, которую процессор может обработать в определенный момент времени.

Если вы заядлый геймер и устанавливали современные игры на свой компьютер, вы знаете, о чем я говорю. Мы часто проверяли описание минимальных требований к играм, будет ли игра работать на 32-битном или 64-битном оборудовании.

64-битные процессоры намного мощнее 32-битных. Они могут сравнительно выполнять гораздо более значительное количество вычислений в секунду, обрабатывать большие объемы данных и т. Д.

Сегодня у нас есть так много передовых операционных систем, которые стали возможными благодаря 64-битным процессорам и большей доступности оперативной памяти для обработки данных со скоростью, подобной флэш-памяти. Кроме того, 64-битные системы также могут запускать программы, написанные для 32-битных систем. Таким образом, они имеют обратную совместимость. Конечно, в какой-то степени. Действительно, старые установки сталкиваются с некоторыми проблемами при работе на новом оборудовании.

Благодаря 64-битным системам у нас есть такие крутые видеоигры нового уровня, как GTA5, Spiderman, Farcry5, которые просто поражают.Видеоигры, я могу говорить об этом весь день?

8. Каковы отношения между битами, байтами, килобайтами, мегабайтами и гигабайтами?

Давайте сравним единицы и получим представление о них, посмотрев на некоторые повседневные примеры из реального мира.

1 бит = 1 или 0 (b)
Логическое значение — 1 бит

8 бит = 1 байт (B)
Символьное значение — 2 байта.

1024 байта = 1 килобайт (КБ)
Электронное письмо занимает около пары килобайт

1024 килобайт = 1 мегабайт (МБ)
Размер файла песни в формате mp3 составляет около 4-5 МБ

1024 мегабайта = 1 гигабайт (ГБ)
DVD-диск с игрой GTA составляет около 75 ГБ

1024 ГБ = 1 терабайт (ТБ)
Расширяемый жесткий диск имеет размер от 1 до 2 ТБ и более.

Подробнее в блоге

Что такое разработка Liquid Software? Мой взгляд на это

Какую базу данных использует Facebook? — Глубокое погружение на 1000 футов

Сколько разработчиков мне нужно для моего стартапа — Глубокое погружение

Сколько времени нужно, чтобы изучить JavaScript и получить странную работу?

Руководство для начинающих по браузеру Beaker и P2P-одноранговым веб-приложениям

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

Понравилась статья? Я не знаю. Может, нет или нет? Позвольте мне в комментариях. Я хотел бы прочитать и ответить на ваши комментарии. Любая обратная связь будет для меня действительно значимой. Кроме того, поделитесь им со своими друзьями.

Увидимся в следующей статье.
А пока…
Ура !!

байтов для детей | KidzSearch.com

Байт — это единица измерения размера информации на компьютере или другом электронном устройстве. Один байт обычно равен восьми битам. Некоторые ранние компьютеры использовали шесть бит для каждого байта. Биты — это наименьшая единица хранения на компьютере, одно значение включения / выключения. Байты часто представлены заглавной буквой B , биты — строчной буквой b .

Одиночный типизированный символ (например, «x» или «8») хранится в одном байте. Символ хранится как двоичное число, которое кодирует текстовый символ.Чтобы сопоставить каждое число с символом, необходим согласованный код, такой как EBCDIC или ASCII. EBCDIC — это кодировка символов, используемая в основном на мэйнфреймах. Он использует 8 бит на байт. ASCII — это еще одна кодировка, в которой используется всего семь бит. Расширенный ASCII использует 8 битов для обозначения большего количества типов символов, в основном используемых на персональных компьютерах.

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

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

Символ для байта — «B». Иногда используется строчная буква «b», но это использование неверно, потому что «b» на самом деле является символом IEEE для «бит». Символ МЭК для бита — бит.Например, «МБ» означает «мегабайт», а «Мбит» означает «мегабит». Разница важна, потому что 1 мегабайт (МБ) равен 1 000 000 байтов, а 1 мегабит (Мбит) равен 1 000 000 бит или 125 000 байтов. Их легко спутать, но биты намного меньше байтов, поэтому следует использовать символ «b» при обращении к «битам» и заглавную букву «B» при обращении к «байтам».

Следующие термины представляют собой даже большие единицы байтов, но используются очень редко:

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

Люди, которые ссылаются на 1 килобайт как на 1024 байта, например, технически некорректны; 1024 байта следует рассматривать как 1 кибибайт в соответствии с IEC. [1] Однако использование 1024 для килограммов и 1048576 для мега- и т. Д. Широко практиковалось до того, как стандарты IEC были установлены в 1998 году. На рынке существует некоторая путаница и смешанные термины. Компьютерная память по-прежнему обозначается степенями 2, поэтому 1 КБ памяти составляет 1024 байта, тогда как в компьютерных хранилищах данных используются мощности 10, так что 1 КБ составляет 1000 байтов.

При использовании стандартных названий метрик, таких как «кило-», «мега-» и «гига-», они должны соответствовать той же мере, что и другие метрические измерения, например километр (1 километр = 1000 метров) или гигагерц (1 гигагерц). = 1000000000 герц), например.

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

Агрегат Номер Краткая шкала Длинная шкала
байт

(В)

1 1

байт

1

байт

Килобайт

(КБ)

1 000 1

тыс.

байт

1

тыс.

байт

мегабайт (МБ) 1 000 000 1

миллионов

байт

1

миллионов

байт

гигабайт (ГБ) 1 000 000 000 1

миллиардов

байт

1

миллиардов

байт

Терабайт

(ТБ)

1 000 000 000 000 1

трлн

байт

1

трлн

байт

Петабайт

(ПБ)

1 000 000 000 000 000 1

квадриллионов

байт

1

квадриллионов

байт

эксабайт

(EB)

1 000 000 000 000 000 000 1

квинтиллион

байт

1

квинтиллион

байт

Зеттабайт (ZB) 1 000 000 000 000 000 000 000 1

секстиллион

байт

1

секстиллион

байт

Йоттабайт (YB) 1 000 000 000 000 000 000 000 000 1

септиллионов

байт

1

септиллионов

байт

Brontobyte (BB) (неофициально) 1 000 000 000 000 000 000 000 000 000 1

октиллионов

байт

1

октиллионов

байт

Geopbyte (GpB / GeB) (неофициально) 1 000 000 000 000 000 000 000 000 000 000 1

нониллион

байт

1

нониллион

байт

Saganbyte (SB) (неофициальный) 1 000 000 000 000 000 000 000 000 000 000 000 1

Дециллион

байт

1

Дециллион

байт

пиджабайт

(PjB) (неофициальный)

1 000 000 000 000 000 000 000 000 000 000 000 000 1

ундециллион

байт

1

ундециллион

байт

Alphabyte (AB) (неофициально) 1 000 000 000 000 000 000 000 000 000 000 000 000 000 1

дуодециллионов

байт

1

дуодециллионов

байт

Pectrolbyte (PcB) (неофициально) 1 000 000 000 000 000 000 000 000 000 000 000 000 000 000 000 1

Tredecillion

байт

1

Tredecillion

байт

Bolgerbyte (BoB) (неофициальный) 1,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000 1

Quattuordecillion

байт

1

Quattuordecillion

байт

Sambobyte (SaB) (неофициальный) 1,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000 1

Квиндециллион

байт

1

Квиндециллион

байт

Quesabyte (QB) (неофициально) 1,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000 1

Шексдециллион

байт

1

Шексдециллион

байт

Kinsabyte (KiB) (неофициально) 10000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 1

септендециллионов

1

септендециллионов

Rutherbyte (RB) (неофициальный) 100000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 1

Октодециллион

байт

1

Октодециллион

байт

Dubnibyte (DB) (неофициальный) 100000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 1

Новемдециллион

байт

1

Новемдециллион

байт

Hassiubyte (HaB) (неофициально) 10000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 1

Вижинтиллион

байт

1

Вижинтиллион

байт

Meitnerbyte (MnB) (неофициально) 10000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 1

Unvigintillion

байт

1

Unvigintillion

байт

Darmstadbyte (DrB) (неофициально) 100000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 1

Duovigintillion

байт

1

Duovigintillion

байт

Roentbyte (RaB) (неофициально) 10000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 1

Trevigintillion

байт

1

Trevigintillion

байт

Sophobyte (SoB) (неофициальный) 100000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 1

Quattuorvigintillion

байт

1

Quattuorvigintillion

байт

Coperbyte (CoB) (неофициально) 100000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 1

Quinvigintillion

байт

1

Quinvigintillion

байт

Koentekbyte (KoB) (неофициально) 100000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 1

Sexvigintillion

байт

1

Sexvigintillion

байт

Glossybyte (GsB) (неофициально) 1000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 1

Septenvigintillion

байт

1

Septenvigintillion

байт

Snugbyte (SuB) (неофициально) 1000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 1

Octovigintillion

байт

1

Octovigintillion

байт

Grandbyte (GrB) (неофициально) 100000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 1

Nonvigintillion

байт

1

Nonvigintillion

байт

Doombyte (DmB) (неофициально) 10000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 1

Тригинтиллион

байт

1

Тригинтиллион

байт

Godbyte (GdB) (неофициально) 1000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 1

Унтригинтиллион

байт

1

Унтригинтиллион

байт

Superbyte (SpB) (неофициально) 10000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 1

Duotrigintillion

байт

1

Duotrigintillion

байт

Googolbyte (GgB) (неофициально) 1000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 1

Гугол

байт

1

Гугол

байт

Агрегат Номер Математика
байт

(В)

1 2 0 байта
Кибибайт

(КБ)

1 024 2 10 байта
Мебибайт

(МиБ)

1 048 576 2 20 байта
гибибайт

(ГиБ)

1 073 741 824 2 30 байта
Тебибайт

(ТиБ)

1 099 511 627 776 2 40 байта
Пебибайт

(ПиБ)

1 125 899 906 842 624 2 50 байта
Эксбибайт

(EiB)

1,152,921,504,606,846,976 2 60 байта
Зебибайт

(ЗиБ)

1,180,591,620,717,411,303,424 2 70 байта
Йобибайт

(YiB)

1,208,925,819,614,629,174,706,176 2 80 байта
Бронбибайт

(БиБ)

(неофициальный)

1,237,940,039,285,380,274,899,124,224 2 90 байта
Гебибайт

(GeiB) (неофициальный)

1,267,650,600,228,229,401,496,703,205,376 2 100 байта
Сагбибайт

(SiB)

(неофициально)

1,298,074,214,633,706,907,132,624,082,305,024 2 110 байта
Pijbibyte

(PjiB)

(неофициально)

1,329,227,995,784,915,872,903,807,060,280,344,576 2 120 байта
Альфбибайт

(AiB)

(неофициальный)

1,361,129,467,683,753,853,853,498,429,727,072,845,824 2 130 байта
Pectbibyte

(PciB)

(неофициальный)

1,393,796,574,908,163,946,345,982,392,040,522,594,123,776 2 140 байта
Bolgbibyte (BoiB) (неофициально) 1,427,247,692,705,959,881,058,285,969,449,495,136,382,746,624 2 150 байта
Sambibyte (SaiB) (неофициальный) 1,461,501,637,330,902,918,203,684,832,716,283,019,655,932,542,976 2 160 байта
Квебибайт (QiB)

(неофициальный)

1,496,577,676,626,844,588,240,573,268,701,473,812,127,674,924,007,424 2 170 байта
кинсбибайт

(KiiB)

(неофициально)

1,532,495,540,865,888,858,358,347,027,150,309,183,618,739,122,183,602,176 2 180 байта
Рутбибайт

(РиБ)

(неофициально)

1,569,275,433,846,670,190,958,947,355,801,916,604,025,588,861,116,008,628,224 2 190 байта
Дуббибайт

(DiB)

(неофициально)

1,606,938,044,258,990,275,541,962,092,341,162,602,522,202,993,782,792,835,301,376 2 200 байта
Hassbibyte (HaiB) (неофициально) 1,645,504,557,321,206,042,154,969,182,557,350,504,982,735,865,633,579,863,348,609,024 2 210 байта
Meitbibyte (MniB) (неофициально) 1,684,996,666,696,914,987,166,688,442,938,726,917,102,321,526,408,785,780,068,975,640,576 2 220 байта
Дармбибайт (ДриБ)

(неофициальный)

1,725,436,586,697,640,946,858,688,965,569,256,363,112,777,243,042,596,638,790,631,055,949,824 2 230 байта
Roentbibyte (RaiB) (неофициально) 1,766,847,064,778,384,329,583,297,500,742,918,515,827,483,896,875,618,958,121,606,201,292,619,776 2 240 байта
Sophbibyte (SoiB) (неофициально) 1,809,251,394,333,065,553,493,296,640,760,748,560,207,343,510,400,633,813,116,524,750,123,642,650,624 2 250 байта
Копбибайт

(CoiB) (неофициальный)

1,852,673,427,797,059,126,777,135,760,139,006,525,652,319,754,650,249,024,631,321,344,126,610,074,238,976 2 260 байта
Koentbibyte (KoiB) (неофициально) 1,897,137,590,064,188,545,819,787,018,382,342,682,267,975,428,761,855,001,222,473,056,385,648,716,020,711,424 2 270 байта
Glossbibyte (GsiB) (неофициально) 1,942,668,892,225,729,070,919,461,906,823,518,906,642,406,839,052,139,521,251,812,409,738,904,285,205,208,498,176 2 280 байта
Snugbibyte (SuiB) (неофициально) 1,989,292,945,639,146,568,621,528,992,587,283,360,401,824,603,189,390,869,761,855,907,572,637,988,050,133,502,132,224 2 290 байта
Грандбибайт (GriB)

(неофициальный)

1,018,517,988,167,243,043,134,222,844,204,689,080,525,734,196,832,968,125,318,070,224,677,190,649,881,668,353,091,698,688 2 299 байта
Doombyte (DmiB) (неофициально) 1,042,962,419,883,256,876,169,444,192,465,601,618,458,351,817,556,959,360,325,703,910,069,443,225,478,828,393,565,899,456,512 2 309 байта
Godbibyte (GdiB) (неофициально) 1,067,993,517,960,455,041,197,510,853,084,776,057,301,352,261,178,326,384,973,520,803,911,109,862,890,320,275,011,481,043,468,288 2 319 байта
Супбибайт

(SpiB) (неофициальный)

1,093,625,362,391,505,962,186,251,113,558,810,682,676,584,715,446,606,218,212,885,303,204,976,499,599,687,961,611,756,588,511,526,912 2 329 байта
Googolbibyte (GgiB) (неофициально) 1,119,872,371,088,902,105,278,721,140,284,222,139,060,822,748,617,324,767,449,994,550,481,895,935,590,080,472,690,438,746,635,803,557,888 2 339 байта
Инструмент преобразования

слов в биты

Armazenamento De Dados

Bit

Bit — это базовая единица оружия цифровой информации.É um acrônimo para dígito binário. Cada bit registra uma das duas respostas Possíveis a uma única pergunta: 0 ou 1, sim ou não, ligado ou desligado. Quando um dado является представителем como binário (base 2) números, cada dígito binário é um único bit. (Em 1946, палавра «бит» для изобретенного американского ученого-ученого Джона Тьюки.)

Byte

Byte — это единая информация, используемая в вычислительной технике. Refere-se a uma unidade de memória endereçável. Seu tamanho pode Variar dependendo da máquina или linguagem de computação.На главном уровне контекста um byte é igual — 8 бит (или 1 октет). (Em 1956, unidade foi nomeado pelo engenheiro da IBM, Werner Buchholz.)

Caráter

Нет информации в цифровом формате, т.е.

Gibibyte

Гибибайт — это многопользовательский байт, единое целое с цифровой информацией, префиксы норм базового мультипликатора гиби (символы Gi). O símbolo da unidade de gibibyte é GiB.

Gigabit

Gigabit — это единое целое для цифровой информации или передачи.Размер 1024 мегабит, 1048576 килобит или 1073741824 бит

Gigabyte

Gigabyte — это единая упаковка цифровых данных. Размер 1024 мегабайта, 1.048.576 килобайт, или 1073741824 байта

Kibibyte

O Kibibyte (символ KiB, сокращение двоичного байта в килобайтах) является одним из основных средств массовой информации электронного электронного управления, международного информационного агентства (IEC 2000). ) como: 1 кибибайт = 1.024 байта

килобит

килобайт — это единая цифровая информация или передача.É igual a 1024 бит.

Килобайт

Килобайт — это единое целое с цифровыми данными. Размер 1024 байта.

Mebibyte

Множественный набор байтов, единое целое с цифровой информацией, префикс для умножения базовых множителей (символы Mi). О символе унидад де мебибайт é MiB.

Megabit

Megabit — это единое целое для цифровой информации или передачи. É igual 1024 килобит или 1.048,576 бит.

Мегабайт

Мегабайт — это единая упаковка цифровых данных. Размер составляет 1024 или 1,048,576 байта.

Mword

Нет информации в цифровом формате, Mword имеет 4 байта или 32 бита.

Nibble

Nibble — Sucessão de quatro cifras binárias (биты) [1]. Полубайт = 4 бита, 2 полубайта = 1 байт = 8 бит, 4 полубайта = 1 слово = 2 байта = 16 бит

Петабит

Петабит — это единое целое цифровой информации или передачи.É igual 1024 терабайт, 1048576 гигабит, 1073741824 мегабит.

Петабайт

Петабайт — это единый арсенал цифровых данных. Размер 1024 терабайта, 1.048.576 гигабайт, 1073741824 мегабайт.

Qword

Нет цифрового информационного наполнения, например, Qword имеет 8 или 64 бита.

Tebibyte

O tebibyte é um múltiplo do byte, uma unidade de armazenamento de informação digital, prefixados pelas normas base multiplicador Tebi (símbolo Ti).О символах единства тебибите TiB.

Терабит

Терабит — это единое целое для цифровой информации или передачи. É igual a 1024 гигабайта, 1048576 мегабит, 1073741824 килобит.

Терабайт

Терабайт — это единая упаковка цифровых данных. Размер 1024 гигабайта, 1.048.576 мегабайт, килобайт 1073741824.

Palavra

Нет цифрового информационного наполнения, может быть 2 байта или 16 бит.

Память MAYHEM! Память, порядок байтов и выравнивание

Цель этого документа — предоставить студентам, изучающим CMSC411 (компьютерную архитектуру), краткое, но исчерпывающее введение в «простую» модель компьютерной памяти, представленную в главе 1 «КОМПЬЮТЕРНАЯ АРХИТЕКТУРА: КОЛИЧЕСТВЕННЫЙ ПОДХОД» Хеннесси и Паттерсона. необходимо для последующих частей курса (кеширование и т. д.)

Этот документ оформлен в виде краткого гипертекстового списка часто задаваемых вопросов. FAQ — это аббревиатура от слов «Часто задаваемые вопросы». Часто задаваемые вопросы широко используются в сетевых дискуссионных группах (группы новостей, обсуждения в Интернете и т. Д.), В качестве документов технической поддержки («общие вопросы») и т. Д. Большой объем информации доступен в Интернете в форме часто задаваемых вопросов, особенно по компьютерным темам. Многие разделы часто задаваемых вопросов сопровождаются упражнениями, поясняющими суть дела. Студенты, изучающие информатику, должны быть знакомы с часто задаваемыми вопросами как с источниками онлайн-информации.

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

1. Что такое «простая» модель компьютерной памяти? Как визуализировать память компьютера?

Для целей этого документа память компьютера будет рассматриваться с помощью того, что мы будем называть «простой» моделью.Важно понимать, что это идеализированная модель, которая существенно менее многослойна, чем модель, представленная в конце курса (кеши, виртуальная память и т. Д.). Хотя уровни сложности будут изменяться, и к этой модели будут добавлены детали, обычно программисты сталкиваются с «простой» моделью, с которой придется иметь дело напрямую. Очень важно помнить, что все эти модели являются абстракцией от физической реальности компьютерной памяти, и это хорошо.Именно абстракция позволяет компьютерам выполнять полезную работу.

В «простой» модели компьютерная память представляет собой одномерную упорядоченную длину битов. Это можно представить в виде серии битов, один за другим тянущихся в бесконечность линии. Биты не могут менять свое положение в строке. Они нумеруются последовательно, начиная с нуля.

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

Здесь мы сталкиваемся с другой абстракцией. Обратите внимание, что это соглашение само по себе является просто удобной абстракцией, оно является чисто произвольным и используется по соглашению по историческим причинам. Было бы так же справедливо назвать состояния «включено» и «выключено», «вверх» и «вниз», или «a» и «b», или «пустой» и «полный», или даже «Zira» и «Корнелиус».

Фактическое представление битов в современных компьютерах включает электрические уровни, но если бы все пошло по-другому, у нас могли бы быть механические компьютеры, основанные на спицах и трещотках, если бы машина Бэббиджа была закончена, или биты, хранящиеся в виде контейнеров с жидкостью, если бы компьютеры развились из водяных часов вместо электрические контакты на считывателе перфокарт.Этот считыватель произошел от автоматизированного ткацкого станка — «льняной» и «шелковый», кто-нибудь?

Конечно, у нас не может быть бесконечной памяти ни в одном реальном компьютере, независимо от того, используем ли мы электрические токи или подпружиненные циферблаты, поэтому теперь представьте, что линия имеет определенную длину, но все остальные свойства — длину из N упорядоченных битов, начиная с 0 и заканчивая номером бита (N — 1). Что мы можем сделать с такой памятью?

Ответ — «ничего», потому что мы не определили способ доступа к какому-либо элементу в памяти.



2. Как осуществляется доступ к памяти? Почему мы разбиваем память на такие элементы, как «байты» и «слова»?

В компьютерах место в памяти элемента называется адресом элемента. Адресация на самом деле довольно сложна в реальном мире, потому что адрес может отображаться из идеализированного или виртуального адреса в один или несколько уровней физических адресов, по одному для каждого уровня в системе памяти компьютера. Но в нашей идеализированной модели мы будем рассматривать все адреса как абсолютные и уникальные.Что касается нашей памяти, никакие два элемента не будут иметь один и тот же адрес. Адреса следует рассматривать как физическое местоположение на «бесконечной линии» или «сегменте линии», которые мы используем для представления памяти, поэтому должно быть очевидно, что никакие два элемента (биты, указанные выше) не могут использовать один и тот же адрес, и нет адрес может быть «пустым».

Самый простой подход к доступу к памяти — доступ к каждому биту по его положению. Затем мы могли бы получить доступ к первому биту, перейдя по адресу 0, второму по адресу 1, третьему по адресу 2, четвертому по адресу 3 и так далее.

Поскольку мы используем цифровые компьютеры, все числа, с которыми мы работаем, в конечном итоге будут храниться в двоичном формате. В двоичном формате мы можем представить от 0 до 3 всего двумя битами:

00 0
01 1
10 2
11 3

Итак, нам нужно 2 бита для адресации 4 ячеек памяти. Расширяя это, мы можем адресовать 128 ячеек с помощью 7 бит и 1024 ячеек с помощью всего лишь 10 бит. Это кажется относительно эффективным. На практике мы не хотим хранить 128 или 1024 бит.3 бита на байт, но получается всего 67 бит, всего на 3 бита больше.

Однако компьютерная память не обращается на битовом уровне. Одна из легко понятных причин заключается в том, что бит — это не очень значимая единица для работы — выполнять любые математические вычисления, используя только биты, было бы довольно сложно. Чтобы сложить два числа, вам нужно будет последовательно складывать каждый бит, как если бы вы создавали эквивалент сумматора пульсаций (CMSC311) из программного обеспечения. А как бы вы выполняли умножение или сравнение чисел? На практике такая машина была бы бесполезной.

Нам нужны полезные компьютеры, поэтому нам нужно разделить память на полезные единицы. Фактически, эти устройства будут определять возможности компьютеров, которые мы создаем. Если мы разбиваем память, скажем, на 4-битные группы битов («полубайты»), мы можем сохранить любое значение от 0 до 15 (подумайте о преобразовании двоичного кода в шестнадцатеричный!) В одном полубайте. Это означает, что сумматоры и другие схемы в нашем процессоре также должны иметь возможность работать с 4-битными группами, поэтому теперь мы можем складывать 15 и 15 за одну операцию, а не по битам за раз.

Ой. Но если мы сложим 15 и 15, мы получим ответ, равный единице. Почему? Поскольку наша единица хранения f может хранить только от 0 до 15. Когда мы складываем 15 и 15 вместе, мы переполняем сумматор, и результат обрезается. Очевидно, мы можем справиться с этим, добавляя большие числа по кусочку за раз, так же, как мы могли бы обрабатывать вручную понемногу. Но кусочек не кажется полезным размером. Вы даже не можете использовать кусочек для хранения латинского алфавита.

Байт, вероятно, является первым действительно полезным размером «сгустка».С помощью байта мы можем адресовать весь алфавит и все знаки препинания и символы, которые мы хотим использовать в документах. От 0 до 255 — также довольно полезный диапазон для чисел в мелком масштабе. Даже если мы думаем о более развлекательном использовании компьютеров (например, видеоигры), человеческий глаз может видеть только около 256 уровней серого (оттенки серого — от черного до белого), поэтому мы уже можем использовать байты для очень высоких качественные изображения. Если нам нужен цвет, мы можем использовать 3 байта вместе, как красный, зеленый и синий, и представлять почти все цвета, которые видит глаз (на самом деле, с 3 байтами или двадцатью четырьмя битами цвета технология отображения является ограничивающей. фактор).Байты очень полезны.

Но они по-прежнему бесполезны для реальных целочисленных вычислений, где мы хотим иметь дело со значениями с гораздо более широкими диапазонами. И есть еще одно ограничение: если наша самая большая единица — байт, то наибольший адрес, к которому мы можем получить доступ, — это тот, который может представлять байт. Предположим, что у нас есть память, адресуемая на байтовом уровне. С помощью одного байта мы можем представить 256 ячеек, что дает нам общий объем памяти всего 256 байтов.

Размер следующего логического кластера вдвое превышает размер байтов, или 16 бит.Имея 16-битные адреса и 16-битные элементы, которые в дальнейшем будут называться «словами», мы можем начать адресацию полезного объема памяти. В частности, 16 бит дает нам 65536 уникальных адресов, каждый из которых может хранить 16 бит. Это дает нам 131072 байта общей адресуемой памяти или 128 килобайт. Сейчас мы действительно говорим, говорим о 1968 году или около того. 24 байта, но он по-прежнему считается 32-битным процессором.Однако адресное пространство всегда ограничено целочисленным размером, поскольку оно используется для хранения слагаемых, и размер элемента не может быть больше этого размера (иначе как бы вы поступили с тем, что находится по адресу?). Таким образом, у вас может быть машина с 64-битными адресами, которая работает с полубайтами или байтами, или с 16-битными словами и так далее, но тогда вам придется читать несколько элементов, прежде чем вы сможете что-либо с ними делать.

Во-вторых, очень удобно иметь большое адресное пространство для других вещей, помимо памяти, таких как «файлы с отображением памяти», когда файлы на диске отображаются для ЦП и программ в виде массивов в памяти или в качестве пространства для выделения аппаратным устройствам. так что взаимодействие с устройством аналогично хранению и чтению значений или таких вещей, как ПЗУ компьютера.

Или просто для роста, что очень и очень важно. В оригинальной конструкции IBM PC использовался Intel 8088, который был 16-битным процессором, который мог адресовать только 1 мегабайт памяти. Инженеры, разрабатывающие ПК, поместили видеодисплей (MDA, адаптер монохромного дисплея), ПЗУ и другие устройства в адресное пространство от 640 КБ до 1 МБ, что означает, что программы видели линейную длину памяти от первого 16-битного слова в памяти до последнего. на пороге 640к, а потом все остальное использовалось для устройств и ПЗУ и так далее.Все программы были написаны с расчетом на непрерывную память, и в результате программы реального режима (включая MSDOS и все программы, которые работают в нем, кроме тех, которые используют «расширители» [включая EMS, XMS и т. Д.]) Ограничены размером 640 КБ. Другие машины на базе 8088 (Dec Rainbow, Zenith Z-100 и т. Д.) Также работали с версиями MS-DOS (до 1983 года существовало несколько систем с MS-DOS и CP / M, которые не были «клонами ПК»). ), но поскольку их разработчики сделали другой выбор, они могли адресовать больше памяти (960 КБ, 768 КБ).Любой, кто регулярно использует ПК, может подтвердить, что недостаток «пространства для роста», обусловленный этим дизайном, по-прежнему присутствует с нами в виде бесчисленных обходных путей и расширений.

В любом случае память разбита на эти более крупные единицы (слова), и поскольку большинство компьютеров имеют общих философских предков, эти слова, в свою очередь, разбиваются на байты. Некоторые машины могут напрямую работать с байтами в слове (Intel, PowerPC и т. Д.), А другим нужно получать байты в своих словах с помощью сдвига (Dec Alpha до AXP 21164a могли обращаться только к своим 64-битным словам как таковым).

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



3. Все ли слова одинаковы? (Несколько слов о словах.)

Нет, и добро пожаловать в лилипут.

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

Словарь, связанный с вычислениями, ничем не уместен, как и такие слова, как «эталонный тест». Теперь мы собираемся ввести новое слово и понятие: порядок байтов.

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

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

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

Давайте поговорим о важности и возьмем числа в качестве примера. Возьмите номер «123456». Мы группируем цифры в этом номере в наборы по три, или «123 456». Какая из этих цифр самая важная?

Ответ — «1».

Если вы думаете: «Как любой из них может быть важнее?» думайте об этом так. Предположим, что в припадке глупости вы сделали серию неудачных ставок на трассе и в итоге получили 123 456 долларов.Теперь идет местная коленная чашечка, чтобы забрать виг. Итак, если ваша местная криминальная семья не очень разбиралась в выборе бухгалтеров, и если они ошиблись с ластиком и «забыли» любую из этих цифр, преобразовав ее в ноль, какая из них сделает вас счастливее? Очевидно, что 1 в начале имеет наибольший «вес».

Мы называем эту цифру «наиболее значащей цифрой». Когда мы имеем дело с компьютерами, у нас есть только биты, поэтому эта цифра является «старшим битом» или «MSB».«И наоборот, если бухгалтеры обнулили 6 в конце, они сэкономят вам всего 6 долларов, что на самом деле незначительная сумма по сравнению с другими 123 450 долларов. Мы называем эту цифру« наименее значимой цифрой », а в компьютерах -« наименее значимым битом ». «или» LSB «.

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

Возьмем это 16-битное слово, разбитое на два составляющих байта:

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

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

Для компьютеров такого консенсуса не существует. Хуже того, нет способа узнать, если все, что у вас есть, — это какие-то двоичные данные, как были упорядочены байты в слове.Давайте еще раз посмотрим на это слово, поскольку оно может быть представлено в памяти двух разных компьютеров (мы будем считать, что самый низкий адрес находится слева):

Всего два. Имея в слове более двух байтов, мы могли бы получить действительно интересный порядок. Мы могли бы разместить два средних байта снаружи или в другом порядке. К счастью, вы не найдете компьютеров, которые так много делают, хотя вы не должны удивляться, обнаружив, что такие типы машин существовали в тот или иной момент.

Итак, с нашей точки зрения, сформированной нашей системой счисления арабского происхождения, первая кажется совершенно логичной, так почему же должны быть какие-либо разногласия? Что ж, давайте визуализируем, как эти два приказа выглядят в памяти.

Прежде всего, значение битов в байтах достаточно стандартизировано. Бит «0» — это бит «младшего разряда» или «младший значащий бит». Если представить себе память как массив, простирающийся вправо, например:

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

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

Давайте вернемся к нашему примеру, приведенному выше, сначала со старшим байтом.

Теперь, если бы мы записали биты памяти, содержащие это слово, начиная слева с первого бита, мы бы написали:

Другими словами, младший бит в байте стоит перед самым старшим битом. Это сбивает с толку, потому что в нашей обычной системе письма бесконечное пространство простирается ВЛЕВО. Но мы обычно выражаем массивы и длину необработанной памяти слева направо (с «концом» массива справа).

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

В начале поездки мы находимся на младшем разряде старшего байта в (16-битном) слове. Подстаканник начинает двигаться. По мере продвижения в памяти мы начинаем подниматься к самому значительному биту в самом значимом байте в слове — это столько, сколько мы собираемся получить.

Следующий бит после самого старшего бита в старшем байте является младшим битом в младшем байте слова. Вы не можете опускаться ниже, поэтому, когда мы переходим пик, представленный MSBit в MSByte, мы направляемся ПРЯМО ВНИЗ. А затем, по мере продвижения в памяти, мы снова начинаем расти, потому что мы переходим от LSBit в LSByte к MSBit в LSByte. Затем мы проходим первое слово, и избавление начинается заново (есть только небольшой подъем между концом слова, MSBit или LSByte, и LSBit MSByte — каковы их относительные значения?).

Так что память с прямым порядком байтов — это много взлетов и падений. Рассматриваемый как линейная диаграмма, где мы отображаем бит в памяти в зависимости от его веса в его слове, память с прямым порядком байтов выглядит как серия взлетов и падений в каждом слове.

32-битные и 64-битные аналоги 16-битных слов — это просто экстраполяция — наиболее значимый фрагмент идет первым, наименее значимый фрагмент — вторым. Требуется несколько попыток, чтобы четко визуализировать память с прямым порядком байтов.

Поскольку мы рассмотрели прямой порядок байтов, давайте подумаем, как выглядит прямой порядок байтов.Вот наше слово с прямым порядком байтов (младший байт первым) сверху:

Как это выглядит в памяти? Как и в случае с прямым порядком байтов, младший бит в каждом байте идет первым. Разница здесь в том, что теперь младший байт идет первым. Итак, первый бит, который мы видим, — это первый бит младшего байта в слове, а последний бит, который мы видим, — это самый старший бит самого старшего байта в слове.

Вернемся к аналогии с американскими горками и снова предположим, что все биты в слове установлены в единицу.В начале мы начинаем с LSBit LSByte в слове — иными словами, как можно больше. Теперь американские горки начинают катиться вперед, и мы движемся вперед в памяти, поднимаясь от LSBit в LSByte к MSBit в LSByte. Здесь все по-другому. Бит, следующий за MSBit в LSByte, является первым битом следующего байта или LSBit в MSByte. И так мы продолжаем подниматься до MSBit в MSByte. А затем наше слово закончилось, и мы резко опускаемся до LSBit в LSByte следующего слова в памяти.

Другими словами, американские горки с прямым порядком байтов очень регулярны. В виде линейного графика память с прямым порядком байтов выглядит как обычная пила.

(Гораздо более широкое обсуждение вопросов, связанных с прямым и обратным порядком байтов, можно найти на http://www.isi.edu/in-notes/ien/ien-137.txt.3)

5. Если это все внутреннее, какое мне дело?

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

Если вы пишете драйверы устройств, вы даже не в безопасности только с одной архитектурой, потому что некоторые из устройств, которые вы пытаетесь поддерживать, могут иметь порядок байтов, противоположный основному процессору. В течение многих лет карты контроллеров SCSI на базе Motorola 68010 поставлялись для систем 80×86 на базе Intel, причем ЦП с прямым порядком байтов выступал в качестве управляющего оборудования на карте SCSI, пытаясь обмениваться данными с ЦП с прямым порядком байтов, на котором работала машина.

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

Возможно нет. Пользователи почти никогда этого не делают, потому что это делается за них.

Например, текст — это поток байтов. Порядок байтов в словах совершенно не важен, потому что единицей обмена является байт, и именно так они хранятся и используются в памяти.

Файлы двоичных изображений, такие как zip-файлы, или форматы растровых изображений, такие как .jpg или .tiff, также кажутся не затронутыми, но это потому, что порядок байтов в форматах хорошо определен и системы, которым необходимо знать, чтобы преобразовать порядок байтов в их собственное представление при чтении данных.

Однако как программисту необходимо иметь дело с проблемами порядка байтов для пользователей. Здесь все становится сложно и непереносимо.

Самый простой способ справиться с этим — использовать любой определяемый языком метод сокрытия порядка байтов. Фактически, текст ASCII — один из самых простых и интуитивно понятных способов для программистов справиться с порядком байтов, потому что они могут использовать стандартную библиотеку ввода / вывода своего языка программирования для чтения / записи чисел из / в текстовые файлы и оставить это в покое. к стандартным библиотечным процедурам для преобразования представления ASCII (в нашем обычном соглашении об орфографии слева направо) в любой внутренний формат, используемый ЦП.Это настолько просто, насколько возможно, потому что он полностью скрывает порядок байтов, но для больших фрагментов двоичных данных это крайне неэффективно, потому что каждый байт в выходном файле хранит только 1 цифру с основанием 10.

Другие методы помечают файл заголовком, который говорит о порядке порядка следования содержащихся данных (например, Unicode [16-битный набор символов] имеет 16-битную отметку в начале файла, которая позволяет программе чтения определять, являются ли данные содержащийся в файле, был сохранен с прямым или обратным порядком байтов и при необходимости изменил).

Если переносимость языков является меньшей проблемой, чем переносимость операционной системы, используйте систему в полной мере. NeXTSTEP / OpenStep предлагают типизированные потоки для решения проблем с порядком байтов, Windows NT определяет платформу с обратным порядком байтов, чтобы исключить проблемы переносимости двоичных данных, а другие мультиплатформенные операционные системы имеют свой собственный способ решения проблемы, если они вообще с ней справляются. .

вернуться в главное меню основной текст Авторские права Роберт Роджерс, 1997 г. графические изображения Copyright 1997 Элизабет Роджерс и Роберт Роджерс Авторское право на HTML-код, 1997 г., Элизабет Роджерс, изображение «Планета обезьян», право на изображение 1973 г. MGM / Universal Pictures (используется без разрешения), изображение экрана аркадной игры «Перчатка», авторское право — 1983–1985 гг., Atari Games Corp.Авторские права на изображение экрана Apple «Lisa», 1983 г. Apple Computer Inc. Разрешено предоставлять эти страницы в их исходной неизменной форме в Интернете для образовательных целей. Их нельзя переиздавать или включать на CDROM, диск или другие носители, или в какие-либо опубликованные работы без явного разрешения правообладателей (включая книги с часто задаваемыми вопросами). .

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *