В вычислении , немного нумерации является соглашением , используемым для определения битовых позиций в двоичном числе или контейнере такого значения. Номер бита начинается с нуля и увеличивается на единицу для каждой последующей битовой позиции.
Наименее значимый бит
В вычислении , то младший значащий бит ( LSB ) является бит положение в двоичном целое число дает значение единицы, то есть определить , является ли число четным или нечетным. LSB иногда называют битом младшего разряда или крайним правым битом из-за принятого в позиционном обозначении правила записи менее значимых цифр дальше вправо. Она аналогична значащая цифра в виде десятичного целого числа, которое является цифрой в них (самом правом) положении. [1]
Обычно каждому биту присваивается номер позиции в диапазоне от нуля до N-1, где N - количество битов в используемом двоичном представлении. Обычно номер бита - это просто показатель степени для соответствующего веса бита в базе 2 (например, в 2 31 ..2 0 ). Некоторые производители ЦП присвоили номера битов противоположным образом (что не то же самое, что и другой порядок следования байтов ). В любом случае, самый младший бит остается однозначным как единичный бит.
Младшие значащие биты (множественное число) - это биты числа, ближайшего к младшему разряду и включающего его. Младшие значащие биты обладают полезным свойством быстро изменяться, если число изменяется даже незначительно. Например, если 1 (двоичный 00000001) добавить к 3 (двоичный 00000011), результатом будет 4 (двоичный 00000100), а три младших бита изменятся (с 011 на 100). Напротив, три старших бита (MSB) остаются неизменными (от 000 до 000). Из-за этой изменчивости наименее значимые биты часто используются в генераторах псевдослучайных чисел , стеганографических инструментах, хэш-функциях и контрольных суммах .
Наименьший бит в цифровой стеганографии
В цифровой стеганографии конфиденциальные сообщения можно скрыть, манипулируя и сохраняя информацию в наименее значимых битах изображения или звукового файла. Пользователь может позже восстановить эту информацию, извлекая младшие биты обработанных пикселей, чтобы восстановить исходное сообщение. Это позволяет скрывать хранение или передачу цифровой информации.
Наименьший байт
LSB также может означать наименее значимый байт . [2] Значение аналогично значению битов: это байт в многобайтовом числе, который имеет наименьшее потенциальное значение.
Старший бит
В вычислениях , то самый старший бит ( MSB ) является битым положением в двоичном числе , имеющее наибольшее значение. MSB иногда называют старшим битом или крайним левым битом из-за соглашения в позиционной записи о записи более значимых цифр дальше влево.
Знаковый бит является MSB в двоичном числа . В обозначении дополнения до единицы и двух «1» означает отрицательное число, а «0» означает положительное число.
Обычно каждому биту присваивается номер позиции в диапазоне от нуля до N-1, где N - количество битов в используемом двоичном представлении. Обычно назначенный номер бита - это просто показатель степени для соответствующего веса бита в основании 2 (например, в ). Некоторые производители ЦП назначают номера битов по-разному. Вне зависимости от нумерации, то MSB остается наиболее значащий бит.231..20
Старший байт
MSB также может обозначать самый старший байт . [3] Значение байтов аналогично значению битов: это байт многобайтового числа, который имеет наибольшее потенциальное значение.
Чтобы избежать двусмысленности между битом и байтом, часто используются менее сокращенные термины MSbit или MSbyte . [4] [5] [6]
Пример беззнакового целого числа
Эта таблица иллюстрирует пример десятичного значения 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 не зависит от того, как передается позиция бита (некоторые системы сначала передают MSB, а другие сначала передают LSB), что больше относится к теме Endianness .
Сначала старший и младший бит
Выражения « старший значащий бит - первый» и « младший значащий бит», наконец , указывают на порядок следования битов в байтах, отправляемых по сети в протоколе передачи или в потоке (например, аудиопотоке).
Большинство значащего бита означает , что самый значимый бит будет прибывающим первым: следовательно , например, шестнадцатеричное число 0x12
, 00010010
в двоичном представлении, поступят в виде последовательности 0 0 0 1 0 0 1 0
.
Первый младший бит означает, что младший бит прибудет первым: следовательно, например, то же шестнадцатеричное число 0x12
, опять же 00010010
в двоичном представлении, прибудет как (обратная) последовательность 0 1 0 0 1 0 0 0
.
Нумерация битов LSB 0
Когда нумерация битов начинается с нуля для младшего значащего бита (LSB), схема нумерации называется "LSB 0". [7] Этот метод битовой нумерации имеет то преимущество, что для любого беззнакового числа значение числа может быть вычислено с использованием возведения в степень с битовым номером и основанием 2. [8] Таким образом, значение двоичного целого числа без знака равно
где b i обозначает значение бита с номером i , а N обозначает общее количество битов.
Нумерация битов MSB 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». [9]
Рекомендуемый стиль для документов запроса комментариев (RfC) - это нумерация битов "MSB 0". [10] [11]
Нумерация битов обычно прозрачна для программного обеспечения , но некоторые языки программирования, такие как Ada, и языки описания оборудования, такие как VHDL и verilog, позволяют указать соответствующий порядок битов для представления типа данных. [12]
Смотрите также
- ARINC 429
- Двоичная система счисления
- Знаковые представления чисел
- Два дополнения
- Порядок байтов
- Двоичный логарифм
- Единица на последнем месте (ULP)
- Найти первый набор
- MAC-адрес: нотация с инверсией битов
Рекомендации
- ^ «Порядок битов форматов IBM SNA противоположен соглашению Intel» . Microsoft . 2014-02-23.
- ^ Бучинский, Дон (05.09.2002). «Учебник MSB / LSB» .[ самостоятельно опубликованный источник? ]
- ^ Роуз, Маргарет (сентябрь 2005 г.). «старший бит или байт» . TechTarget .
- ^ II, Патрик Дж. Суини (11 марта 2010 г.). RFID для чайников . Джон Вили и сыновья. ISBN 9781118054475.
- ^ «Формат растрового изображения амулета» . web.mit.edu . Проверено 25 февраля 2018 .
- ^ «Память MAYHEM! Память, порядок байтов и выравнивание» . www.cs.umd.edu . Проверено 25 февраля 2018 .
- ^ Лэнгдон, Глен Г. (1982). Компьютерный дизайн . Computeach Press Inc. стр. 52 . ISBN 0-9607864-0-6.
- ^ «Битовые числа» . Проверено 30 марта 2021 .
- ^ Дэвид В. Джеймс (июнь 1990 г.). «Мультиплексные автобусы: войны с порядком байтов продолжаются». IEEE Micro . 10 (3): 9–21. DOI : 10.1109 / 40.56322 . ISSN 0272-1732 . S2CID 24291134 .
их первые биты и полубайты поступали от микросхем ALU , которые отображают ноль (0) в младший бит. (...) некоторые (в противном случае) конструкторы с прямым порядком байтов настаивают на использовании нотации с прямым порядком байтов для описания бит и нотации с прямым порядком байтов для описания байтов. (...) Обратите внимание, что IBM (на S / 360 и 370 ) и Hewlett-Packard (на процессоре PA-RISC ) последовательно сопоставляют ноль с MSB
- ^ Скотт, Грегор (июнь 1998 г.). «RFC 2360 - Руководство для разработчиков Интернет-стандартов» . Инженерная группа Интернета (IETF). п. 11 . Проверено 14 февраля 2010 .
Предпочтительная форма для диаграмм пакетов - это последовательность длинных слов в сетевом порядке байтов, где каждое слово горизонтально на странице, а нумерация битов вверху.
- ^ «RFC 1166 - ИНТЕРНЕТ-НОМЕРА» . Инженерная группа Интернета (IETF). Июль 1990 г. с. 1 . Проверено 11 июня 2014 .
Всякий раз, когда октет представляет числовую величину, крайний левый бит на диаграмме является старшим или наиболее значимым битом.
- ^ Норман Х. Коэн (январь 1994 г.). «Условия представления записей, не зависящие от порядка байтов» (PDF) . Письма Ады . ACM SIGAda. XIV (1): 27–29. DOI : 10.1145 / 181492.181493 . ISSN 1094-3641 . S2CID 31612852 . Проверено 20 декабря 2008 .
Внешние ссылки
- Нумерация бит для разных процессоров:
- Motorola 68000 (разделы «Битовая манипуляция» и «Обратная битовая нумерация»)
- IBM Cell Broadband Processors («Порядок байтов и нумерация битов»)