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

редактировать
Условные обозначения битовых позиций

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

Содержание

  • 1 Младший бит
    • 1.1 Младший бит в цифровой стеганографии
    • 1.2 Младший бит
  • 2 Старший бит
    • 2.1 Старший значащий байт
  • 3 Пример беззнакового целого
  • 4 Первый старший бит против наименее значимого
  • 5 Нумерация битов LSB 0
  • 6 Нумерация битов MSB 0
  • 7 Другое
  • 8 Использование
  • 9 См. Также
  • 10 Ссылки
  • 11 Внешние ссылки

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

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

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

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

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

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

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

Наименее значимых бит в цифровой стеганографии

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

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

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

Младший байт

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

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

Старший бит

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

MSB может также соответствовать знаку бит двоичного числа со знаком. В нотации до единицы и с дополнением до двух «1» означает отрицательное число, а «0» означает положительное число.

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

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

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

Старший байт

MSB также может означать «старший значащий байт ». Смысл аналогичен приведенному выше: это байт (или октет ) в той позиции многобайтового числа, которая имеет наибольшее потенциальное значение.

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

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

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

Двоичный (Десятичный: 149)10010101
Битовый вес для данной битовой позиции n (2)22222222
Метка битовой позиции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». Этот метод нумерации битов имеет то преимущество, что для любого беззнакового числа значение числа может быть вычислено с использованием возведения в степень с номером бит и основанием, равным 2.. Следовательно, значение двоичного числа без знака целое равно

∑ i = 0 N - 1 bi ⋅ 2 i {\ displaystyle \ sum _ {i = 0} ^ {N-1} b_ {i } \ cdot 2 ^ {i}}{\ displaystyle \ sum _ {i = 0} ^ {N-1} b_ {i} \ cdot 2 ^ {i}}

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

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

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

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

Следовательно, значение двоичного целого числа без знака равно

∑ i = 0 N - 1 bi ⋅ 2 N - 1 - i {\ displaystyle \ sum _ {i = 0} ^ {N-1} b_ {i} \ cdot 2 ^ {N-1-i}}{\ displaystyle \ sum _ {i = 0} ^ {N-1} b_ {i} \ cdot 2 ^ {N-1-i}}

Оператор elem другого

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

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

∑ i = 1 N bi ⋅ 2 N - i {\ displaystyle \ sum _ {i = 1} ^ {N} b_ { i} \ cdot 2 ^ {Ni}}{\ displaystyle \ sum _ {i = 1} ^ {N} b_ {i} \ cdot 2 ^ {Ni}}

PL / I нумерует BITстроки, начинающиеся с 1 для крайнего левого бита.

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

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

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

Рекомендуемый стиль для документов Request for Comments (RfC) - это нумерация битов «MSB 0».

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

См. Также

Ссылки

Внешние ссылки

Последняя правка сделана 2021-05-12 08:25:31
Содержание доступно по лицензии CC BY-SA 3.0 (если не указано иное).
Обратная связь: support@alphapedia.ru
Соглашение
О проекте