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

Programming languages 具有任意但固定精度整数的编程语言?,programming-languages,integer,bits,Programming Languages,Integer,Bits,是否有任何编程语言支持任意n位整数类型作为原语?也就是说,有没有一种语言可以让我写一些类似 int[137 bits] n = 0; 注意,这与询问是否有一种语言包含任意精度的整数不同。我正在寻找一种可以为我想要的任何特定固定精度使用固定精度整数的方法。允许您将整数声明的大小指定为下限和上限。我不知道他们是否会接受这样的任意整数,或者是否会生成这样的代码。生成代码并不难:多精度加法使用固定宽度的乘法“加法进位”指令非常容易,而乘法/除法速度足够慢,因此对库的子例程调用不会明显影响性能。我不知道

是否有任何编程语言支持任意n位整数类型作为原语?也就是说,有没有一种语言可以让我写一些类似

int[137 bits] n = 0;

注意,这与询问是否有一种语言包含任意精度的整数不同。我正在寻找一种可以为我想要的任何特定固定精度使用固定精度整数的方法。

允许您将整数声明的大小指定为下限和上限。我不知道他们是否会接受这样的任意整数,或者是否会生成这样的代码。生成代码并不难:多精度加法使用固定宽度的乘法“加法进位”指令非常容易,而乘法/除法速度足够慢,因此对库的子例程调用不会明显影响性能。

我不知道有什么。有一些支持将大整数作为原语,但您明确地没有要求这样做。我怀疑一个问题是,大多数平台都不是位可寻址的。我想您可以编写一个可以实现n字节整数的类,但这样就不是原始类了。想知道您的应用程序吗?

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

COBOL支持任意精度的10进制数字


为Java
BigInteger
(或类似)创建一个包装器类是一项直截了当的任务,它可以满足您的需要;e、 g.截断算术运算的结果或引发自定义“溢出”异常。

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

大多数动态语言都带有无限精度整数/有理数算术包:LISP、Python、Mathematica。。。大多数已经有很长时间的语言都有一个子程序包。C++可以(也可以从Stroustrup所表达的C++设计理念判断)用模板库支持,并且可以很容易地使用内置类型来实现特殊实例。