- ベストアンサー
4096bitを95種類で表現すると何桁ですか
256bitを95種類(ASCII印刷可能文字)で表現すると 39桁 同 512bitだと 78桁 とすると4096bitだとふつうに 39*(4096/256) で 624桁 で合ってますか? http://www.ttmath.org/online_calculator で貼り付けてcalculateクリックしただけですが。 さっき別質問で http://ideone.com/ODTXZ を教えてもらって 256のとこを512にするまではできたのですが https://ideone.com/W3SNX 1024以上はエラーみたいになってしまったので また質問しました。
- みんなの回答 (1)
- 専門家の回答
質問者が選んだベストアンサー
はい、そう思います。 #何かideone.comのサーバ負荷が高いみたいなんで辛いけど。 # doubleにも1.7 * 10^308くらいに上限があるからね。> 1024でこける http://msdn.microsoft.com/en-us/library/system.double.aspx #質問者さんが39*(4096/256)と言うように、 例えば、Math.Log(Math.Pow(2,10))って10 * Math.Log(2)なんで 最初からそういう計算にしたほうがいいが、面倒くさかった。 誤差が範囲内に収まるなら39で割りきってもいいと思うけど、大丈夫か俺は自信持てなかった。 #今回の場合は問題ないか。別パターンで計算ミスった、と思ったことがあったんで。 0,1の2文字で2を表現するのに必要なバイト数は2だと思うんですが System.Math.Ceiling(System.Math.Log(2,2))は1になってしまうと思います。
お礼
またまたありがとうございます!!! ・・・仰っていることは3行目からもうほとんど分かりませんが ありがとうございました!! ・・・昔256bitの95進数化はVBで書いたことあったんですが ほぼ完全に全て忘れました・・・ 唯一覚えてるのはBigIntegerなかったら作れなかったな自分の 能力では、ギリギリセーフだった・・・ (無謀な行いで失敗寸前だった・・・) ということだけです・・・