3

10進数で表現したい2進数があります。番号は次のとおりです。

Binary = 1000 11100000 00000000 00000000 00000000 00000000 01101110 10110000 10100101  

同等の 16 進表現は次のとおりです。

Hexadecimal = 08 E0 00 00 00 00 6E B0 A5

私は Windows 7 で作業しており、Bin (Binary) と Qword を使用してプログラマー モードで電卓を使用してみました。ただし、64 ビットの制限があります。

質問:

  • この数値を 10 進数で表すにはどうすればよいですか?
  • この数値を表す無料のツールはありますか?
  • C++11/C++でこれを達成する方法はありますか?
4

3 に答える 3

5

まず、プラットフォームがサポートする2進数の大きさを決定します。64だとしましょう。2進数を64のチャンクに分割し、通常どおり下位チャンクを実行します。ここで、次のチャンクの下位ビットは264を表しますそのチャンクを通常の数のように変換しますが、 264を掛けます。この手法は、必要な回数だけ使用できます。次のチャンクに2128を掛け、次に2192掛けます

于 2012-10-22T05:24:30.553 に答える
0

これを参照するとよいと思います。

JAVA を使用する場合は、ここでBigInteger クラスを使用できます。

または、C++ で大きな数の計算を実行するためのユーザー定義ライブラリをこちらからダウンロードしてください

于 2012-10-22T05:22:04.703 に答える
0

より簡単な解決策は、反対側から作業することです。0x1, 0xA, 0x64, 0x3E8, 0x2710, ...10 の累乗が数値より大きくなるまで、10 の累乗すべてのバイナリ表現を生成します。次に、10 の各累乗が何回発生するかを数えます (もちろん、9 回までです)。

つまり、10 進数で 470x2Fになります。4 * 0xA + 7 * 0xA

于 2012-10-22T10:30:38.563 に答える