アプリ版:「スタンプのみでお礼する」機能のリリースについて

delphiでエンディアン変換をする方法を教えてください

A 回答 (2件)

ANo.1 補足への回答です。

例えば下記のようなコードでできます。WindowsXP+Delphi2007で試しました。

なお、エンディアン変換と言われているので間違いないかと思いますが、ファイル/メモリ上の4バイトをintegerに取り込むと自動的に変換されますよ(バイナリエディタでAABBCCDDと見える4バイトをintegerに取り込むとDDCCBBAAになりますよ)。

program ReverseB;
{$APPTYPE CONSOLE}
uses
SysUtils;
const
org: LongWord = $AABBCCDD;

function Reverse4B(source: LongWord): LongWord;
type
Array4B = array[0..3] of Byte;
begin
Array4B(Result)[0] := Array4B(source)[3];
Array4B(Result)[1] := Array4B(source)[2];
Array4B(Result)[2] := Array4B(source)[1];
Array4B(Result)[3] := Array4B(source)[0];
end;

begin
Writeln(InttoHex(org,8), ' => ', InttoHex(Reverse4B(org),8));
Readln;
end.
    • good
    • 0
この回答へのお礼

ありがとうございます。まだ未検証ですが、やってみます。

お礼日時:2008/07/23 00:29

バイナリで読み込んで変換処理を行えばいいのでは?

この回答への補足

4byteのデータなのですが、2byteずつ読んで、ひっくり返すと言う意味でしょうか?具体的に、そのようなソースを示してもらいたいのですが。
よろしくお願いします。

補足日時:2008/07/21 22:41
    • good
    • 0

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!