摘要: 在做ACM題時,經(jīng)常都會遇到一些比較大的整數(shù)。而常用的內(nèi)置整數(shù)類型常常顯得太小了:其中l(wèi)ong 和 int 范圍是[-2^31,2^31),即-2147483648~2147483647。而unsigned范圍是[0,2^32),即0~4294967295。也就是說,常規(guī)的32位整數(shù)只能夠處理40億以下的數(shù)。
那遇到比40億要大的數(shù)怎么辦呢?這時就要用到C++的64位擴展了。不同的編譯器對64位整數(shù)的擴展有所不同。基于ACM的需要,下面僅介紹VC6.0與g++編譯器的擴展。
VCVC6.0的64位整數(shù)分別叫做__int64與unsigned __int64,其范圍分別是[-2^63, 2^63)與[0,2^64),即-9223372036854775808~9223372036854775807與0~18446744073709551615(約1800億億)。對64位整數(shù)的運算與32位整數(shù)基本相同,都支持四則運算與位運算等。
閱讀全文