How can I use arbitrary length integers in Perl?

痞子三分冷 提交于 2020-01-01 09:25:10

问题


Is there any standard way to use integers of arbitrary length in Perl? I am working on code that generates x64 assembly for tests, and I'm tired of manipulating 32 bits at a time.

I'm using Perl 5.10.0, for what it's worth.


回答1:


If you only want to use big integers, you can use the bigint, which you can scope to a file:

 use bigint;

or just a limited scope:

 {
 use bigint;
 ...;
 }

If you need big floating point numbers as well as big integers, you can use the bignum pragma in the same way. Either way, these will slow down your program slightly (or significantly if you are doing a lot of math), so you should only use them for the parts where you really need them. However, faster isn't better than correct. :)

If you want very precise control over which numbers use the big* math, you can use the underlying classes that implement them and create objects yourself rather than applying the big* semantics to everything. Look that Math::Big* modules.

I talk about this more in the Benchmarking chapter of Mastering Perl since computers are too fast nowadays to use a factorial as a slow function, and we also added a section on big numbers it to the upcoming Effective Perl Programming, 2nd Edition.




回答2:


use Math::BigInt



来源:https://stackoverflow.com/questions/2126420/how-can-i-use-arbitrary-length-integers-in-perl

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!