可以长久持有这么多符号吗?

时间:2012-02-22 11:48:16

标签: c++

基本上可以长期用100个符号保持数字吗?例如可以长期持有这个数字 -

1000000000000000000010000000000000000000100000000000000000001000000000000000000010000000000000000000

如果不是,我应该使用哪种类型,哪个可以容纳这么多?

我在谈论c ++。

4 个答案:

答案 0 :(得分:4)

我建议使用http://gmplib.org/。 正如亚历山大所说,没有标准类型可以将这么大的字符串作为数字来保存。

答案 1 :(得分:1)

对于这么大的数字,您必须实现自定义类型。没有standard type可以容纳这么大的数字。

答案 2 :(得分:1)

没有。 long long通常为64位,足以容纳大约20位十进制数字。如果你想要更长的时间,你需要一个像gmp这样的库以及它使用的任何结构类型。或者你可以自己动手。

或者,如果您只关心各个数字,则根本不需要数字类型。将“数字”存储为std::string,按字符处理,每个数字的值等于其字符的ASCII码减去'0'的值(等于48,如果您愿意,但是'0'更像是自我记录的IMO。)

答案 3 :(得分:0)

即使long long由80位(double的长度)组成,它也不会保持10 ^ 100(大于2 ^ 80)。