• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:vb6 バイトオーダエンディアン変換の高速化)

VB6バイトオーダエンディアン変換の高速化方法

このQ&Aのポイント
  • VB6でバイトオーダのエンディアン変換を行う際に処理速度が低下する問題があります。本記事では、これを解決するための方法を紹介します。
  • VB6におけるエンディアン変換では、一旦Stringに変換してしまうことが原因で処理速度が遅くなります。そこで、より高速な方法を模索している方に役立つ情報を提供します。
  • VB6でのバイトオーダのエンディアン変換を高速化する方法について解説します。Stringに変換せずに直接変換を行うことで、処理速度の向上が期待できます。詳細な手順や注意点についても説明します。

質問者が選んだベストアンサー

  • ベストアンサー
回答No.2

構造体を使ってバイトを入れ替える方法。 Public Type Data4Byte2 myByte(1) As Byte End Type Public Type Data4Byte4 myByte(3) As Byte End Type Public Type Data4Integer myInteger As Integer End Type Public Type Data4Long myLong As Long End Type Public Function Swap(ByVal L As Long) As Integer Dim d4b2 As Data4Byte2 Dim d4b4 As Data4Byte4 Dim d4i As Data4Integer Dim d4l As Data4Long ' d4l.myLong = L LSet d4b4 = d4l d4b2.myByte(0) = d4b4.myByte(1) d4b2.myByte(1) = d4b4.myByte(0) LSet d4i = d4b2 Swap = d4i.myInteger End Function

usami33
質問者

お礼

ありがとうございました おかげさまで、 なんと23sかかっていた処理が13sと大幅に短縮ができました。 構造体を使うなんて、なんて発想が柔軟なんでしょう!!

その他の回答 (1)

回答No.1

Swap = L / 256 + (L Mod 256) * 256 など

usami33
質問者

補足

回答ありがとうございます。 教えていただいた方法ですと、符号付の値がずれてしまいませんか?

関連するQ&A

専門家に質問してみよう