C言語で書かれた実数型をGNU複数精度演算ライブラリの倍精度浮動小数点数にマッピングしたプロジェクトを継承しました。 GMP)。この実数型のバイト数をテストするために実行時にGMPを使用してCで定義された実数型のバイト数を取得する方法
、私が実行できる:
printf("Storage size for Real type: %d bytes\n", sizeof(Real));
は24バイト、すなわち192ビットを与えます。
#define REAL_EPSILON 1e-24
#define REAL_FORMAT "% 25.24Fe"
#define REAL_IOTA 1e-96
#define REAL_PRECISION 128
誰もがこれらのライン上の任意の光を当てることができます:
はしかし、クラスを定義ファイルには、次の行を持っていますか?私は特に最後の行が数字の小数部のバイト数に128ビットまたは16バイトを示すかどうかについて懸念しています。
これは、仮数部に16バイトがあることを意味しますが、 'Real'構造体には指数部と符号部のメンバーも含まれています。それらは他の8バイトです。 – Barmar
@Barnar:私があなたを理解していることを確認しましょう:16バイトが10進数であると考えると本質的に正しいと言っていますか? –
はい、私はそう思います。確かめたい場合は、ソースコードをチェックして、 'Real'の構造体宣言を見てください。 – Barmar