В Delphi используй операцию and, которая возвращает результат побитового умножения. Пример a and $10 — выделить 4-ый бит. Если результат не ноль — бит установлен.

 

То же самое, но на ассемблере. Это позволяет достичь максимальной скорости выполнения.

 

Code:

function GetBites(t, Mask: LongWord): LongWord;

asm

mov eax, t;

and eax, mask;

end;

 

 

Эта функция возвращает t and Mask. Если необходимо выполнить сдвиг, то применяется команда shr:

 

Code:

function ShiftBites(t, Mask: LongWord; shift: byte): LongWord;

asm

mov eax, t;

mov cl, shift;

shr eax;

and eax, Mask;

end;

 

Эта функция возвращает (t shr shift) and Mask. Если же ассемблер не поможет, надо или переделывать алгоритм, или менять компьютер :))

 

https://delphiworld.narod.ru/

DelphiWorld 6.0

Добавить комментарий

Не использовать не нормативную лексику.

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

ВСЕ КОММЕНТАРИИ МОДЕРИРУЮТСЯ ВРУЧНУЮ, ТАК ЧТО СПАМИТЬ БЕСПОЛЕЗНО!


Защитный код
Обновить