Показать сообщение отдельно
  #2  
Старый 25.02.2009, 18:38
lmikle lmikle вне форума
Модератор
 
Регистрация: 17.04.2008
Сообщения: 8,090
Версия Delphi: 7, XE3, 10.2
Репутация: 49089
По умолчанию

Зачем переводить туда-сюда?

может так:
Код:
var
  N : WORD;
begin
  N := (N And $FF00) Or (Not (N And $00FF));
end;

Логика (в кв. скобках - результат операции под соотв. номером):
1. N And $FF00 - получаем старший байт с нулевым младшим байтом.
2. N And $00FF - получаем младший байт.
3. Not ([2]) - инвертированый младший байт.
4. [1] Or [3] - объединяем результат.
Вроде правильно.
Для DWORD (который Integer) сам поправишь - принципиально не меняется, только маски соответсвующие нужны.
Ответить с цитированием