1

特定の値をファイルにシリアライズする C コードをいくつか書きました。このファイルは、その後、別のマシンの Java で (カスタム コードを使用して) デシリアライズされます。

私がシリアライズしている値の中には、64 ビットの倍精度浮動小数点実数があります。私がコードを書いたとき、それはコンパイル可能で Linux 上でのみコンパイルされ実行される予定でしgccた。以前ieee754.hは、IEEE 754 標準に従って値のすべての部分にアクセスし、それらの部分をファイルに書き込んでいました。Java 側では、単純に を使用Double.longBitsToDouble(long)して値を再構築します。

xlc問題は、 10を使用して AIX 5.3 でコードをコンパイルして実行できるようにするように依頼されたことです。

ieee754.hAIXに相当するものはありますか?

4

1 に答える 1

2

エンディアンの問題を除いて、IEEE754 は固定形式です。それがどのように見えるかを伝えるシステムヘッダーは必要ありません。次のようなことをしてください:

uint64_t rep;
double x;
memcpy(&rep, &x, sizeof rep);

条件付きで結果をバイト オーダー スワップする必要があるプラットフォームを使用している場合は、そのためのコードを含めることもできますが、私の知る限り、AIX はそれらの 1 つにはなりません。

于 2012-05-28T23:46:23.707 に答える