C++11中加入long long 的整型,C++11 標準要求 long long 整型可以在不同平台上有不同的長度,但至少8字節(64位)。long long 整型有兩種∶long long 和 unsigned long long
//long long 對應類型的數值可以使用LL或者ll後綴(推薦用大寫LL,l容易和1混淆)
long long num1 = 123456LL;
long long num2 = 123456ll;
//unsigned long long 對應類型的數值可以使用ULL或者ull或者Ull、uLL(等大小寫混合均可)後綴
unsigned long long num3 = 112233445566ULL;
unsigned long long num4 = 112233445566ull;
unsigned long long num5 = 112233445566Ull;
unsigned long long num6 = 112233445566uLL;
unsigned long long num7 = 112233445566uLl;
unsigned long long num8 = 112233445566UlL;
C++11中與以上兩種類型等價的:
long long :
- long long int
- signed long long
- signed long long int
unsigned long long
- unsigned long long int
同樣的這兩種類型也像其他的整型一樣有MIN以及MAX的宏
- LLONG_MIN 最小的long long值
- LLONG_MAX 最大的long long
- ULLONG_MAX 最大的 unsigned long long 值(最小值是0)
#include <iostream>
using namespace std;
int main(){
cout << "LLONG_MIN: " << LLONG_MIN << endl;
cout << "LLONG_MAX: " << LLONG_MAX << endl;
cout << "ULLONG_MAX: " << ULLONG_MAX << endl;
return 0;
}
輸出結果:
LLONG_MIN: -9223372036854775808
LLONG_MAX: 9223372036854775807
ULLONG_MAX: 18446744073709551615
下面總結一下整型:
C++提供的是靈活的標準,它確保了最小長度:
- short至少16位
- int至少與short一樣長
- long至少32位,且至少與int一樣長
- long long至少64位,且至少與long一樣長
| 整型名稱 | (> 16 位 Windows)佔用字節數
[數據範圍] |
(32 位 Linux)佔用字節數
[數據範圍] |
(64 位 Linux)佔用字節數
[數據範圍] |
|---|---|---|---|
| int(signed 、signed int) | 4字節
[-231,231-1] INT_MIN=-2147483648 INT_MAX=2147483647 |
4字節
[-231,231-1] INT_MIN=-2147483648 INT_MAX=2147483647 |
4字節
[-231,231-1] INT_MIN=-2147483648 INT_MAX=2147483647 |
| unsigned int(unsigned) | 4字節
[0,232-1] UINT_MAX=4294967295 |
4字節
[0,232-1] UINT_MAX=4294967295 |
4字節
[0,232-1] UINT_MAX=4294967295 |
| short(short int、signed short 、signed short int) | 2字節
[-215,215-1] SHRT_MIN=-32768 SHRT_MAX=32767 |
2字節
[-215,215-1] SHRT_MIN=-32768 SHRT_MAX=32767 |
2字節
[-215,215-1] SHRT_MIN=-32768 SHRT_MAX=32767 |
| unsigned short(unsigned short int) | 2字節
[0,216-1] USHRT_MAX=65535 |
2字節
[0,216-1] USHRT_MAX=65535 |
2字節
[0,216-1] USHRT_MAX=65535 |
| long(long int、signed long、signed long int) | 4字節
[-231,231-1] LONG_MIN=-2147483648 LONG_MAX=2147483647 |
4字節
[-231,231-1] LONG_MIN=-2147483648 LONG_MAX=2147483647 |
8字節
[-263,263-1] LONG_MIN=-9223372036854775808 LONG_MAX=9223372036854775807 |
| unsigned long(unsigned long int) | 4字節
[0,232-1] ULONG_MAX=4294967295 |
4字節
[0,232-1] ULONG_MAX=4294967295 |
8字節
[0,264-1] ULONG_MAX=18446744073709551615 |
| long long(long long int、signed long long、signed long long int) | 8字節
[-263,263-1] LLONG_MIN=-9223372036854775808 LLONG_MAX=9223372036854775807 |
8字節
[-263,263-1] LLONG_MIN=-9223372036854775808 LLONG_MAX=9223372036854775807 |
8字節
[-263,263-1] LLONG_MIN=-9223372036854775808 LLONG_MAX=9223372036854775807 |
| unsigned long long(unsigned long long int) | 8字節
[0,264-1] ULLONG_MAX=18446744073709551615 |
8字節
[0,264-1] ULLONG_MAX=18446744073709551615 |
8字節
[0,264-1] ULLONG_MAX=18446744073709551615 |