2016-09-20 24 views
-4

任何人都可以指導我如何在C編程中創建一個數據類型,它可以在-2^127到(2^127)-1的範圍內添加2個數字?如何在c中創建用戶定義的數據類型,如下所示?

在此先感謝。

+0

那麼,你覺得呢?這種數據類型應該多大? –

+1

如果您還沒有完成,請花些時間閱讀[幫助頁面](http://stackoverflow.com/help),尤其是名爲[「我可以詢問什麼主題?」]的部分( http://stackoverflow.com/help/on-topic)和[「我應該避免問什麼類型的問題?」](http://stackoverflow.com/help/dont-ask)。另請[請閱讀如何提出好問題](http://stackoverflow.com/help/how-to-ask),並學習如何創建[最小,完整和可驗證示例](http:// stackoverflow .COM /幫助/ MCVE)。 –

+0

你甚至想要計算什麼?! – rak007

回答

0

由於範圍包含負整數,我們需要一個有符號的數字。 C標準規定的最大有符號整數是 是long long int(在ISO C99標準中引入,參見https://en.wikipedia.org/wiki/C_data_types)。

該標準規定,它應該至少能夠保持 的數字在 - (2^63-1)至2^63-1的範圍內。注意這裏實現這種數據類型的常見方式爲 硬件是使用一個64位二進制補碼整數,給出-2^63到2^63-1的精確範圍。這對於您的需求來說太小,因此您需要使用非標準數據類型或創建自己的數據類型。

幸運的是,在gcc和clang編譯器中都有一個128位的 有符號整數數據類型。它被稱爲__int128_t。我在這種類型的範圍內找不到任何規格 ,但我們可以假定它實際上是-2^127到2^127-1。此數據類型可以在您指定的範圍內處理 添加,除非發生進位(請參閱https://en.wikipedia.org/wiki/Carry_(arithmetic))。

相關問題