【发布时间】:2013-01-29 14:27:48
【问题描述】:
可能重复:
c++ template for conversion between decimal and arbitrary base
我想将unsigned int 的实例转换为基数 X 中的std::vector<unsigned int> 实例,其中 X 是从 2 到 unsigned int 可以表示的最大数之间的任意数字。
编辑:我曾经说过unsigned int 以 10 为基数,但它得到了关键的 cmets,我认为这是正确的,所以我将其删除以避免混淆。
关于 SO 有很多问题和答案,包括 itoa 之类的东西,它可以转换为基数 16 或 32 或一些小数字(this itoa implementation page 被指出是很好的资源)。对于比这大得多的碱基,我找不到很好的转换。
注意:性能不是问题(在合理范围内)。
【问题讨论】:
-
您所说的“
unsigned int以 10 为底的实例”到底是什么意思?unsigned ints 通常存储在 base 2 中。 -
为什么不自己写呢?没有标准的方法。
-
“以 10 为基数的
unsigned int的实例”没有任何意义。基数是数字的表示的属性,而不是数字本身的属性。 -
@LexFridman:当然,您可以简单地扩展它,或者将其修改为仅写入每个数字的整数值。
标签: c++ vector numbers base base-conversion