0

Windows 上の C プログラムから、バイナリを BIG_ENDIAN に格納する Java バイトバッファのように読み書きする必要があります。

アルゴリズムについては、http: //mindprod.com/jgloss/binaryformats.htmlで説明されています。

int と float を読み書きする必要があります。

これまたは参照を行うcまたはC++コードの例はありますか?

ティア、バート

4

2 に答える 2

1

ビッグ エンディアンとリトル エンディアンの間の変換が難しいと思います。

この記事は、エンディアンの変換に役立ちます。整数、長整数、浮動小数点数、および任意の長さのバイト配列のバイト順を交換するコードが含まれています。
http://www.codeproject.com/KB/cpp/endianness.aspx

任意の型を交換するコードは次のようになります。

#include <algorithm> //required for std::swap

#define ByteSwap5(x) ByteSwap((unsigned char *) &x,sizeof(x))

void ByteSwap(unsigned char * b, int n)
{
   register int i = 0;
   register int j = n-1;
   while (i<j)
   {
      std::swap(b[i], b[j]);
      i++, j--;
   }
}
于 2009-06-16T14:50:32.827 に答える
0

htonlなどを使用したい。残りのデザインはあなた自身のものです。

于 2009-06-16T14:57:03.967 に答える