2進数を10進数に変換する方法を知っています。私は少なくとも2つの方法を知っています:テーブルとパワー;-)
2進数を10進数に変換して、この10進数を出力したいと思います。さらに、私はこの「10進数」には興味がありません。印刷したいだけです。
しかし、上で書いたように、私は2進数を10進数に変換する方法を2つしか知らず、両方とも加算が必要でした。したがって、バイナリで1または0の値を計算し、それを記憶されている値に追加します。これは薄い場所です。私は本当に本当に大きな数(1と64のゼロ)を持っています。変換中は、中間結果を「変数」に配置する必要があります。Cでは、「int」型があります。これは4バイトのみで、10^11以下です。
そのため、2進数から10進数に変換するときに、中間結果を保存するのに十分なメモリがありません。上で書いたように、私はその小数には興味がなく、結果を出力したいだけです。しかし、私はそれを解決する他の方法を見ていません;-(バイナリから「ただ印刷する」ための解決策はありますか?
または、中間表現にBCD(Binary Coded Decimal)のようなものを使用する必要がありますか?クロスプラットフォームではないので、私は本当にこれを使いたくありません(Intelのプロセッサには組み込みの機能がありますが、他の場合は独自の実装を作成する必要があります)。
ご意見をお聞かせいただければ幸いです。しばらくお待ちいただきますようお願いいたします。
言語:C。