2011-08-02 49 views
3

是否有任何編程語言支持任意n的n位整數類型作爲原語?也就是說,有沒有在那裏我可以寫東西的具有任意但固定精度整數的編程語言?

int[137 bits] n = 0; 

注意的效果,這是不一樣的,詢問是否有與他們任意精度的整數語言的語言。我正在尋找的東西,我可以有固定的精度整數爲任何特定的固定精度,我想。

+0

大多數動態語言都帶有無限精度的整數/有理數學運算包:LISP,Python,Mathematica,......大多數已經存在很長時間的語言通過子程序包具有這種能力。 –

+0

C++可以(也可以從Stroustrup表達的C++設計理念來判斷)用模板庫支持這一點,並且可以很容易地使用專用實例的內置類型 –

回答

2

Verilog會將其表示爲reg [136:0] n。硬件描述語言(HDL)都可以提供類似的功能。您也可以使用Verilog作爲腳本語言,但這不是真正的設計中心,也不會爲您提供使用常規編程語言的BigInt風格整數可獲得的性能。

0

Ada compilers允許您指定整數聲明的大小作爲下限和上限。我不知道他們是否會接受這樣的任意整數,或者他們是否會爲此生成代碼。它並不是完全難以生成的代碼:多精度添加很容易使用多個固定寬度的「添加進位」指令,並將乘/除速度足夠慢,以便子庫調用庫不會明顯影響性能。

-1

我知道沒有。有一些支持bigIntegers作爲原語,但你明確沒有這樣問。我懷疑一個問題是大多數平臺都不是可尋址的。我想你可以編寫一個可以實現n字節整數的類,但它不會是原始的。好奇地知道你的應用程序...

0

Ada允許你聲明一個Integer範圍,你可以使用它來實現對「任意」小值的需求。

COBOL支持任意精度的基數爲10的數字。

創建一個你想要的Java的包裝類BigInteger(或類似的)將是一個直接的任務;例如截斷算術運算的結果或拋出定製的「溢出」異常。