编程语言具有任意但固定的精度整数?

时间:2011-08-02 02:59:47

标签: programming-languages integer bits

是否有任何编程语言支持任意n的n位整数类型作为基元?也就是说,是否有一种语言,我可以写一些东西到

的效果
int[137 bits] n = 0;

请注意,这与询问是否存在具有任意精度整数的语言不同。我正在寻找能够获得任何特定固定精度的固定精度整数的东西。

4 个答案:

答案 0 :(得分:2)

Verilog会将其表达为reg [136:0] n。硬件描述语言(HDL)都为您提供类似的功能。您也可以使用Verilog作为脚本语言,但这并不是它的设计中心,并且不会为您提供使用常规编程语言中的BigInt样式整数所能获得的性能。

答案 1 :(得分:0)

Ada compilers允许您将整数声明的大小指定为下限和上限。我不知道他们是否会接受任意整数,或者他们是否会为此生成代码。生成的代码并不是很难:使用多次固定宽度的“add carry”指令可以很容易地进行多精度添加,并且乘法/除法的速度足够慢,因此对库的子程序调用不会显着影响性能。

答案 2 :(得分:0)

Ada允许您将类型声明为Integer的范围,您可以使用它来实现对“任意”的小值的要求。

COBOL支持任意精度基数为10的数字。

为Java BigInteger(或类似)创建一个包装类是一项直截了当的任务,它可以完成您想要的任务;例如截断算术运算的结果或抛出自定义的“溢出”异常。

答案 3 :(得分:-1)

我一无所知。有一些支持bigIntegers作为原语,但你明确没有问过。我怀疑一个问题是大多数平台都无法进行位寻址。我想你可以写一个可以实现n字节整数的类,但那时它不会是原始的。很想知道你的申请......