Описание |
Сдвигает значение целого числа вправо на указанное число бит
Число сдвигается на Bits бит вправо.
|
|
Примечания |
Предупреждение - используйте Shl только когда требуется побитовая операция - не используйте вместо умножения или деления. Во-первых, потому что это неизвестно, что случается. Во-вторых, биты могут быть потеряны в операции.
Предупреждение: компилятор отклонит жестко закодированные значения сдвига вправо, которые превышают 32, если тип данных не Int64.
|
|
Похожие команды |
Hi Возвращает байт старшего разряда от типа Integer.
Lo Возвращает младший байт целого числа (2-байтового)
Shl Сдвигает значение целого числа влево на указанное число бит
| |
|
Пример кода : Смещение влево и теряя старшие разряды перед смещением вправо |
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
|
|