Описание |
Ключевое слово Shl выполняет поразрядный сдвиг влево целого числа. Число сдвигается на Bits бит влево.
Например:
var
myByte : Byte;
begin
myByte := $2F; // $2F = 47 decimal
myByte := myByte Shl $24;
end;
Дает тот же самый результат, что и Shl 4 = $F0.
|
|
Примечания |
Предупреждение - используйте Shl только когда требуется побитовая операция - не используйте вместо умножения или деления. Во-первых, потому что это неизвестно, что случается. Во-вторых, биты могут быть потеряны в операции.
|
|
Похожие команды |
Hi Возвращает байт старшего разряда от типа Integer.
Lo Возвращает младший байт целого числа (2-байтового)
Shr Сдвигает значение целого числа вправо на указанное число бит
| |
|
Пример кода : Смещение влево и теряя старшие разряды перед смещением назад |
var
before, after : Word;
begin // Установка начального числа before := $3C; // Hex 3C = 003C в Word
// Сдвиг влево на 12 потеряет верхние 12 бит Word
after := before Shl 12;
ShowMessageFmt('До : %x',[before]);
ShowMessageFmt('После смещения влево: %x',[after]);
// Смещение вправо на 12 не возвратит потерянные данные
after := after Shr 12;
ShowMessageFmt('После смещения вправо : %x',[after]);
end;
|
До : 3C
После смещения влево : C000
После смещения вправо : C
|
|