是否有任何编程语言支持任意n的n位整数类型作为基元?也就是说,是否有一种语言,我可以写一些东西到
的效果int[137 bits] n = 0;
请注意,这与询问是否存在具有任意精度整数的语言不同。我正在寻找能够获得任何特定固定精度的固定精度整数的东西。
答案 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字节整数的类,但那时它不会是原始的。很想知道你的申请......