2016-02-13 30 views
-2

我需要在C中保存範圍10^20的值。聽說C的大詮釋可以持有這麼大的價值。如何在C中聲明和使用big int。在C中解釋大整數?

有沒有人知道一個簡單的方法來做到這一點?任何幫助真的會很感激!

+2

好吧,'10^20' *不適合C中普通的'int'。 – EOF

+0

10^20大約是2^65,所以128位int可以處理它,看你的'int128_t'是否可用編譯器。 – user3528438

+0

@ user3528438:什麼? '10^20 == 30'。如果'INT_MAX <30',你的實現是不合格的。 – EOF

回答

1

您可以使用類型unsigned long long,範圍至少爲0..18446744073709551615,但這只是1.8E19,因此略低於您的需要。如果你真的想要超過64位,你可以檢查你的系統是否支持128位整數(如__int128,__int128_t,int128_t或類似的東西),或者你需要一個多精度包如GMP。

+0

假設提供'__int128'的編譯器也提供'int128_t'是不是安全? – user3528438

+0

如何使用__int128 –

+0

「__int128」是否可用取決於您的系統。你計劃什麼環境?如果可用,它只是一個普通的類型,比如'int'或'long int'。 – chqrlie