1.介紹
????????long long 超長整形是C++11標準新添加的,用于表示更大范圍整數的類型。
2.用法
? ? ? ? 占用空間:至少64位(8個字節)。
? ? ? ? 對于有符號long long 整形,后綴用“LL”或“II”標識。例如,“10LL”就表示有符號超長整數10。其取值范圍為-2^63~2^63-1。
? ? ? ? 對于無符號long long 整形,后綴用“ULL”、“ull”、“UII”、“uLL”標識。例如,“10ULL”就表示無符號超長整數10。其取值范圍為0~2^64-1。
????????注意事項:C++11標準規定,每種整形類型必須同時具備有符號(signed)和無符號(unsigned)兩種類型,且所占用的空間必須相同。并且,C++11標準只限制了每種類型的最少占用存儲空間,不同平臺可能占用不同的存儲空間。
3.使用場景
? ? ? ? (1)處理大整數。例如計算階乘、斐波那契數列等可能產生大數值的算法中,普通的整形可可能會溢出, 使用long long 類型可以一定程度上避免這個問題。
? ? ? ? (2)處理時間戳。時間戳通常是一個較大的整數,使用long long類型可以很好的滿足需求。
4.總結
????????long long 類型為C++開發者提供了一種處理大整數的有效方式,但在使用時需要注意以下問題:
? ? ? ?(1)溢出問題。long long 類型范圍雖然很大,但仍然可能溢出,因此需要注意是否會溢出。
? ? ? ?(2)性能問題。long long 類型需要更大的存儲空間,在計算時比普通整數類型(如 int)稍微慢些,因此在對性能要求較高的場景中,需要權衡是否真的需要使用long long 類型。