0

long long(64 ビット) 値を取得し、(64 ビット) 値aからb多かれ少なかれ等しいdoubledを取得するにはどうすればよいですか? これは可能ですか(精度を損なうことなく)?(double)a / bd

私はこれに沿って試しましたが、どこにも行かなかったので、間違った考えを持っているのではないかと考えています:

union ieee754_double u;
u.d = d;

long long a = (long long)u.ieee.mantissa0 << 32 | u.ieee.mantissa1;
long long b = (long long)1 << (u.ieee.exponent + IEEE754_DOUBLE_BIAS);
4

4 に答える 4