Nバイナリ桁の整数を手動で印刷するスケーラブルなアルゴリズムとは何ですかの値がlong long
に収まらない場合。私はprintf
とお友達を<iostream>
と一緒に知っています(<cstdio>
のピギーバックは標準タイプの組み込みですが、Nバイトからなる整数のためにしたいと思います)。Nバイトの整数を手動で印刷する
私はこれについて考えましたGMPのような既存のbigint libiraryを使ったり、 "use printf"や "これは難しい"という最も有用な "これは難しい"を使うようになっています。
整数は基本的に:
template<size_t N>
class Integer{
...
private:
int8_t first;
uint8_t rest[N-1];
}
Integer<4>
のバイトを再解釈するあなたはint32_t
になります。これをN> 8に拡大したいと思います。効率は現時点では私の心配ではありません。エンディアンも(これはx86用です)。
数字を10進数で印刷する必要がありますか? – NPE
@aixはい10進数が考えられます。 – rubenvb
私の助言は、とにかくbigintライブラリを使うことです。これらのライブラリはデバッグされ、実証されています。あなた自身のコーディングの欠陥をどのように見つけますか?ペン&ペーパーやExcelで結果を確認するのと同じではありません。 – tomdemuyt