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


Автор: Djaconda 29.9.2008, 00:35
подскажите какие функции и пример если можно.

Автор: Virtuals 29.9.2008, 06:08
Djaconda, longint это 2 слова или четыре байта.
мой любимый способ (обьявленние переменных по одному и тому же адресу) //не рекомендуют но мне нравится
Код

var L:Longint;
    Bl:array[1..4] of Byte absolute L;
    Wl:array[1..2] of Word absolute L;
  begin
L:=$12345678;
writeln(inttohex(L,4) );
writeln(inttohex(Bl[4],1),'_'
        ,inttohex(Bl[3],1),'_'
        ,inttohex(Bl[2],1),'_'
        ,inttohex(Bl[1],1));
writeln(inttohex(Wl[2],2),'_'
        ,inttohex(Wl[1],2));
  readln;


Автор: MetalFan 29.9.2008, 09:18
еще два способа:
1)
Код

  lFirstByte := lLongInt and $FF
  lLastByte := lLongInt shr 24;

2)
Код

  lFirstByte :=  LongRec( lLongInt ).Bytes[0];
  lLastByte := LongRec( lLongInt ).Bytes[3];

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