Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Delphi: Общие вопросы > Побитовые операции


Автор: vicq 20.4.2008, 09:46
имеется 32-хбитное значение. возможно ли его разделить на массив в 8 элементов по 4 бит?
я пишу ГОСТ 28147-89, тут написано что 32битное значение должно интерпретироваться как массив из восьми 4битных блоков.
объясните пожалуйста как это делается.

Автор: bems 20.4.2008, 10:32
Код

val and $F0000000
val and $0F000000
val and $00F00000
etc

Автор: Alexeis 21.4.2008, 12:27
n - номер числа (от нуля до 7)
val32 32х разрядное число 
val4   - 4х битное значение.

Для чтения 
Код

val4 := (val32 and ($F shl (n shl 2))) shr (n shl 2);

Для записи
Код

val32 := (val32 and (not ($F shl (n shl 2)))) or ((val4 and $F) shl (n shl 2));

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)