- ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:vb6 バイトオーダエンディアン変換の高速化)
VB6バイトオーダエンディアン変換の高速化方法
このQ&Aのポイント
- VB6でバイトオーダのエンディアン変換を行う際に処理速度が低下する問題があります。本記事では、これを解決するための方法を紹介します。
- VB6におけるエンディアン変換では、一旦Stringに変換してしまうことが原因で処理速度が遅くなります。そこで、より高速な方法を模索している方に役立つ情報を提供します。
- VB6でのバイトオーダのエンディアン変換を高速化する方法について解説します。Stringに変換せずに直接変換を行うことで、処理速度の向上が期待できます。詳細な手順や注意点についても説明します。
- みんなの回答 (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
その他の回答 (1)
- TooManyBugs
- ベストアンサー率27% (1472/5321)
回答No.1
Swap = L / 256 + (L Mod 256) * 256 など
質問者
補足
回答ありがとうございます。 教えていただいた方法ですと、符号付の値がずれてしまいませんか?
お礼
ありがとうございました おかげさまで、 なんと23sかかっていた処理が13sと大幅に短縮ができました。 構造体を使うなんて、なんて発想が柔軟なんでしょう!!