Интернет магазин китайских планшетных компьютеров



Компьютеры - Битовое поле - Операции над многобитовыми полями

23 января 2011


Оглавление:
1. Битовое поле
2. Операции над многобитовыми полями
3. Операции над однобитовыми полями
4. Операции над знаковыми полями в дополнительном коде
5. Объявления битовых полей



Пусть в одном байте находятся три битовых поля: 1-битовые a и b, 2-битовое c и 4-битовое d, то есть x = a + b \cdot 2^1 + c \cdot 2^2 + d \cdot 2^4.

 d d d d c c b a

Например: при a=1, b=0, c=2=102, d=5=01012 получаем x=010110012=89.

Сборка одного числа из битовых полей

Двоичные компьютеры обычно имеют команды побитового сдвига, которые позволяют быстро умножать на степени двойки — 2, 4, 8 и т. д. Вместо сложения можно применить команду логического «ИЛИ». Таким образом, число x можно собрать и по-другому:

x = | | | a

Извлечение битового поля

Для извлечения битового поля нужно провести две операции:

  1. Умножить операцией логического «И» число на битовую маску — число, у которого в соответствующих разрядах единицы, а в остальных нули.
  2. Провести побитовый сдвиг вправо.

То есть:

c = >> 2

Либо:

  1. Провести побитовый сдвиг вправо.
  2. Умножить операцией логического «И» число на битовую маску соответствующей длины.
c = & 00000011b

Для младшего поля побитовый сдвиг не нужен, то есть:

a = x & 00000001b

Для старшего поля побитовый сдвиг сам по себе, без умножения на маску, очистит x от ненужных битов — то есть,

d = x >> 4

Замена битового поля

  1. Очистить x от предыдущего значения побитовым умножением на маску с нулями в соответствующих битах.
  2. Побитово сложить x с новым значением

Например, если нам нужно заменить d, то

xnew = |


Просмотров: 4244


<<< Битовая маска
Битовые операции >>>