Нумерация бит - Bit numbering

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

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

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

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

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

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

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

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

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

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

LSB также может означать наименее значимый байт . Значение аналогично значению битов: именно байт в многобайтовом числе имеет наименьшее потенциальное значение.

Старший бит

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

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

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

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

Старший байт

MSB также может обозначать самый старший байт . Значение байтов аналогично значению битов: это байт многобайтового числа, который имеет наибольшее потенциальное значение.

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

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

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

Двоичный (десятичный: 149) 1 0 0 1 0 1 0 1
Битовый вес для данной битовой позиции n (2 n ) 2 7 2 6 2 5 2 4 2 3 2 2 2 1 2 0
Метка битовой позиции MSB LSB

Положение 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. Таким образом, значение двоичного целого числа без знака равно

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

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

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

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

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

Другой

Algol 68 «сек эля оператор эффективен„старший бит 1 битой нумерация“ , как биты пронумерованы слева направо, причем первый бит (биты Эль 1) быть„самым старшим бит“, и выражение (биты эль биты ширина) давая «младший значащий бит». Точно так же, когда биты приводятся (приведение типов) к массиву логических значений ([] bool bits), первый элемент этого массива (биты [ lwb биты]) снова является « старшим значащим битом».

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

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

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

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

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

Рекомендуемый стиль для документов запроса комментариев (RfC) - это нумерация битов "MSB 0".

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

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

использованная литература

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

  • Нумерация бит для разных процессоров:
    • Motorola 68000 (разделы «Битовая манипуляция» и «Обратная битовая нумерация»)
    • IBM Cell Broadband Processors («Порядок байтов и нумерация битов»)