バックグラウンド
IEEE 754倍精度浮動小数点形式は、64ビットで実数を表現する方法です。次のようになります。
![]()
実数nはdouble、次の方法でa に変換されます。
s数値が正の場合、符号ビットは0、それ以外の場合は1です。- の絶対値は
nの形式2**y * 1.xxxで表されます。つまり、baseの2のべき乗倍です。 - 指数
eはy(2 のべき乗)-1023です。 - 画分が
fあるxxx最も重要な52ビットを取る部分(基部の小数部分)。
逆に、ビットパターン(sign s、exponent eおよびfraction fで定義され、それぞれ整数)は数値を表します。
(s ? -1 : 1) * 2 ** (e - 1023) * (1 + f / (2 ** 52))
チャレンジ
実数を指定するnと、のdouble表現の52ビットの小数部をn整数として出力します。
テストケース
0.0 => 0
1.2 => 900719925474099 (hex 3333333333333)
3.1 => 2476979795053773 (hex 8cccccccccccd)
3.5 => 3377699720527872 (hex c000000000000)
10.0 => 1125899906842624 (hex 4000000000000)
1234567.0 => 798825262350336 (hex 2d68700000000)
1e-256 => 2258570371166019 (hex 8062864ac6f43)
1e+256 => 1495187628212028 (hex 54fdd7f73bf3c)
-0.0 => 0
-1.2 => 900719925474099 (hex 3333333333333)
-3.1 => 2476979795053773 (hex 8cccccccccccd)
-3.5 => 3377699720527872 (hex c000000000000)
-10.0 => 1125899906842624 (hex 4000000000000)
-1234567.0 => 798825262350336 (hex 2d68700000000)
-1e-256 => 2258570371166019 (hex 8062864ac6f43)
-1e+256 => 1495187628212028 (hex 54fdd7f73bf3c)
ビットフィールドとユニオンを使用するこのCリファレンスを使用して、他の数値を確認できます。
予想される答えはで同じであることに注意+nして-n、任意の数のためにn。
入出力
標準ルールが適用されます。
使用可能な入力形式:
- 少なくとも
double内部的に精度を持つ浮動小数点数 - 10進数の文字列表現(
1000...00または0.0000...01を使用できるため、科学表記法をサポートする必要はありません)
出力の場合、最下位ビットでの丸め誤差は許容範囲です。
勝利条件
これはcode-golfであるため、各言語の最下位バイトが優先されます。