Битовая нумерация - Bit numbering

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

Наименее значащий бит

В двоичное представление десятичного числа 149, с выделенным младшим битом. MSB в 8-битном двоичном числе представляет собой десятичное значение 128. LSB представляет собой значение 1.

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

Обычно каждому биту присваивается номер позиции в диапазоне от нуля до N-1, где N - количество битов в используемом двоичном представлении. Обычно номер бита - это просто показатель степени соответствующего веса бита в базе 2 (например, в 231..20). Некоторые производители ЦП присвоили номера битов противоположным образом (что не то же самое, что и разные порядок байтов ). В любом случае, самый младший бит остается однозначным как единичный бит.

Наименьшие значащие биты (множественное число) - это биты числа, ближайшего к младшему разряду и включающего его. Младшие значащие биты обладают полезным свойством быстрого изменения, если число изменяется даже незначительно. Например, если 1 (двоичный 00000001) добавлен к 3 (двоичный 00000011), результатом будет 4 (двоичный 00000100), а три младших бита изменятся (с 011 на 100). Напротив, три старшие биты (MSB) остаются без изменений (от 000 до 000). Из-за этой нестабильности наименее значимые биты часто используются в генераторы псевдослучайных чисел, стеганографический инструменты, хэш-функции и контрольные суммы.

Наименьший бит в цифровой стеганографии

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

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

Это позволяет скрывать хранение или передачу цифровой информации.

Наименьший байт

LSB также может означать наименее значимый байт.[2] Значение аналогично приведенному выше: это байт (или же октет ) в той позиции многобайтового числа, которая имеет наименьшее потенциальное значение. Если значение аббревиатуры младший байт не очевидно из контекста, его следует указать явно, чтобы избежать путаницы с младший бит.

Чтобы избежать этой двусмысленности, можно использовать менее сокращенные термины «lsbit» или «lsbyte».

Старший бит

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

MSB также может соответствовать знаковый бит из двоичное число со знаком. В один и два дополнения В записи "1" означает отрицательное число, а "0" означает положительное число.

Обычно каждому биту присваивается номер позиции в диапазоне от нуля до N-1, где N - количество битов в используемом двоичном представлении. Обычно это просто показатель степени соответствующего битового веса в базе 2 (например, в 231..20). Хотя некоторые производители процессоров назначают номера битов противоположным образом (что не то же самое, порядок байтов ), MSB однозначно остается наиболее значащий бит. Это может быть одной из причин, почему термин MSB часто используется вместо битового числа, хотя основная причина, вероятно, в том, что разные представления чисел используют разное количество битов.

В более широком смысле старшие биты (во множественном числе) - это биты, наиболее близкие к MSB и включающие его.

Беззнаковый двоичный представление десятичного числа 149 с выделенным MSB. MSB в 8-битном двоичном числе представляет собой десятичное значение 128. LSB представляет собой значение 1.

Старший байт

MSB также может означать "наиболее значимый байт".[3] Значение аналогично приведенному выше: это байт (или октет ) в той позиции многобайтового числа, которая имеет наибольшее потенциальное значение.

Чтобы избежать этой двусмысленности, менее сокращенные термины "MSbit" или же "MSbyte"часто используются.[4][5][6]

Пример беззнакового целого числа

Эта таблица иллюстрирует пример десятичного значения 149 и расположение LSB. В этом конкретном примере позиция значения единицы (десятичная 1 или 0) находится в позиции бита 0 (n = 0). MSB обозначает наиболее значимый бит, а LSB обозначает наименьший значимый бит.

Двоичный (десятичный: 149)10010101
Битовый вес для данной битовой позиции n (2п )2726252423222120
Метка битовой позицииMSBLSB

Позиция LSB не зависит от того, как передается позиция бита (одни системы сначала передают старший бит, другие сначала передают младший бит), что является скорее вопросом темы Порядок байтов.

Сначала старший и младший бит

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

Сначала старший бит означает, что старший бит будет первым: отсюда, например, шестнадцатеричное число 0x12, 00010010 в двоичном представлении поступит как последовательность 0 0 0 1 0 0 1 0 .

Сначала младший бит означает, что младший бит прибудет первым: отсюда, например, то же шестнадцатеричное число 0x12, опять таки 00010010 в двоичном представлении поступит как (обратная) последовательность 0 1 0 0 1 0 0 0.

Нумерация битов LSB 0

LSB 0: контейнер для 8-битного двоичного числа с выделенным младший бит присвоил бит номер 0

Когда нумерация битов начинается с нуля для младший бит (LSB) схема нумерации называется «LSB 0».[7] Этот метод нумерации бит имеет то преимущество, что для любого беззнаковое число значение числа можно рассчитать с помощью возведение в степень с номером бита и основание из 2. Значение беззнакового двоичного файла целое число следовательно является

куда бя обозначает значение бита с номером я, и N обозначает общее количество битов.

Нумерация битов MSB 0

MSB 0: контейнер для 8-битного двоичного числа с выделенным старший бит присвоил бит номер 0

Аналогично, когда нумерация битов начинается с нуля для старший бит (MSB) схема нумерации называется «MSB 0».

Таким образом, значение двоичного целого числа без знака равно

Другой

АЛГОЛ 68 с элем оператор фактически представляет собой "нумерацию MSB 1 бит", поскольку биты нумеруются слева направо, причем первый бит (биты элем 1) является «старшим битом», а выражение (биты элем бит ширины), дающий «младший значащий бит». Аналогично, когда биты приводятся (приведение типов) к массиву Булево ([ ]bool бит), первый элемент этого массива (биты [lwb биты]) снова является «старшим битом».

Для нумерации MSB 1 значение двоичного целого числа без знака равно

PL / I числа КУСОЧЕК строки, начинающиеся с 1 для крайнего левого бита.

В Фортран BTEST функция использует нумерацию LSB 0.

использование

Little-endian Процессоры обычно используют нумерацию битов "LSB 0", однако оба соглашения о нумерации битов можно увидеть в прямой порядок байтов машины. Некоторые архитектуры, такие как SPARC и Motorola 68000 используйте нумерацию битов "LSB 0", а S / 390, PowerPC и PA-RISC используйте "MSB 0".[8]

Рекомендуемый стиль для Запрос комментариев (RfC) документы имеют нумерацию битов "MSB 0".[9][10]

Нумерация битов обычно прозрачна для программного обеспечения, но некоторые языки программирования, такие как Ада и языки описания оборудования, такие как VHDL и Verilog позволяют указать соответствующий порядок битов для представления типа данных.[11]

Смотрите также

Рекомендации

  1. ^ «Порядок битов форматов IBM SNA противоположен соглашению Intel». Microsoft. 2014-02-23.
  2. ^ Бучинский, Дон (05.09.2002). "Учебное пособие по MSB / LSB".
  3. ^ Роуз, Маргарет (сентябрь 2005 г.). "старший бит или байт". TechTarget.
  4. ^ II, Патрик Дж. Суини (11 марта 2010 г.). RFID для чайников. Джон Вили и сыновья. ISBN  9781118054475.
  5. ^ "Формат растрового изображения амулета". web.mit.edu. Получено 2018-02-25.
  6. ^ "Память MAYHEM! Память, порядок байтов и выравнивание". www.cs.umd.edu. Получено 2018-02-25.
  7. ^ Лэнгдон, Глен Г. (1982). Компьютерный дизайн. Computeach Press Inc. стр.52. ISBN  0-9607864-0-6.
  8. ^ Дэвид В. Джеймс (июнь 1990 г.). «Мультиплексные автобусы: войны с порядком байтов продолжаются». IEEE Micro. 10 (3): 9–21. Дои:10.1109/40.56322. ISSN  0272-1732. S2CID  24291134. их первые кусочки и грызет пришли из ALU чипы, которые отображают ноль (0) в младший бит. (...) некоторые (в противном случае) конструкторы с прямым порядком байтов настаивают на использовании нотации с прямым порядком байтов для описания битов и нотации с прямым порядком байтов для описания байтов. (...) Обратите внимание, что IBM (на S / 360 и 370 ) и Hewlett-Packard (на PA-RISC процессор) последовательно сопоставляют ноль с MSB
  9. ^ Скотт, Грегор (июнь 1998 г.). «RFC 2360 - Руководство для разработчиков стандартов Интернета». Инженерная группа Интернета (IETF). п. 11. Получено 2010-02-14. Предпочтительная форма для диаграмм пакетов - это последовательность длинных слов в сетевом порядке байтов, где каждое слово на странице расположено горизонтально, а нумерация битов вверху.
  10. ^ «RFC 1166 - ИНТЕРНЕТ-НОМЕРА». Инженерная группа Интернета (IETF). Июль 1990 г. с. 1. Получено 2014-06-11. Всякий раз, когда октет представляет собой числовую величину, крайний левый бит на диаграмме является старшим или наиболее значимым битом.
  11. ^ Норман Х. Коэн (январь 1994 г.). «Условия представления записей, не зависящие от порядка байтов» (PDF). Письма Ады. ACM SIGAda. XIV (1): 27–29. Дои:10.1145/181492.181493. ISSN  1094-3641. S2CID  31612852. Получено 2008-12-20.

внешняя ссылка