2013-10-13 10 views
2

對於int來說,數據大小默認是4個字節,對於其8個字節的兩倍。我們可以建立一個大小爲n的數據類型,例如64個字節或100個字節。我不想使用內部數據類型或任何用戶定義的數據類型。 目前正在研究一個需要高數據處理能力的項目。使用long double,但當數據值從20-25位數增加時,程序停止。如何在不使用任何用戶定義的數據類型的情況下在C或C++中構建大小爲n的全新數據類型?

+0

它應該在C或C++ –

+0

您應該使用長運算來代替。 –

+0

我已經使用long double –

回答

5

不,你不能「建立」一個新的本地類型,並不是沒有(當然)修補編譯器來擴展語言。此時,您不再使用標準C(也不是C++),而是使用其中的一些擴展。

C和C++本機類型的意義在於表達了典型CPU硬件在本地級別上可以完成的操作。你不能指望在類型方面「超越」而不期望做這項工作,即實現抽象。

多精度庫的工作原理是使用許多本地數字代表較大的數字,幷包括根據需要執行算術的代碼。這是一個行之有效的做法,並且有許多成熟的庫,如GMP

它可能只是「建立一個數據類型」來解決這個問題,這些庫將不存在。

+0

尼斯,提供示例+1,這是OP可能需要的東西。 –

+0

@EricPostpischil真的,我編輯過,使其更清晰一些。 – unwind

+0

我正在與GMP ..讓我檢查它是如何工作的..! –

相關問題