当前位置:  开发笔记 > 编程语言 > 正文

C++:大整数

如何解决《C++:大整数》经验,为你挑选了2个好方法。

我正在编写一个词法分析器作为编译器项目的一部分,我需要检测一个整数是否大于int中的整数,这样我就可以打印错误了.是否有适合此目的的大整数C++标准库?



1> Sol..:

用于将数字字符串转换为整数的标准C库函数应该检测超出范围的数字,并将errno设置为ERANGE以指示问题.看到这里



2> jpalecek..:

你可以使用libgmp.但是,我认为,出于您的目的,这是不必要的.

例如,如果您将数字解析为32位unsigned int,那么

    解析第一个最多9个十进制数字(即地板(32*log(2)/ log(10)).如果还没有更多,则数字正常.

    拿下一个数字.如果你得到的数字/ 10不等于上一步的数字,那么数字就不好了.

    如果你有更多的数字(例如超过9 + 1),那么数字就是坏的.

    否则这个数字很好.

一定要跳过任何前导零等.

推荐阅读
谢谢巷议
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有