2016-12-18 2 views
-1

私は自分のコードで膨大な数を扱っています。一意性を失うことなく値を減らしたいのです(マップは1対1のままです)。プログラミングで一意性を失うことなく10^18の数字を小さな数字に変換するにはどうすればよいですか?

+1

例を挙げてください。 – ja72

+0

多分、重複した値がたくさんある場合は、somethigを行うことができます – agentp

+0

あなたの番号の範囲は何ですか? – innoSPG

答えて

2

あなたはそれを言及していませんでしたが、浮動小数点値ではなく整数を参照していると仮定します。

数字スペースが10^18で、すべての数字が関連する場合、情報を失うことなく、より小さな数字スペースに縮小することはできません。

-9.2 * 10^18には+9.2 * 10^18を64ビット符号付き整数で入力できます。あなたが上がる必要がある場合は、128ビットの数字(またはあなたのコンパイラのための '大きな数字'のライブラリ)が必要です。

データが符号なしの場合、64ビット整数(zero1.84 * 10^19)に収まります。

関連する問題