#include <iostream>
#include <climits>
int main()
{
using namespace std;
int n_int = INT_MAX;
short n_short = SHRT_MAX;
long n_long = LONG_MAX;
long long n_llong = LLONG_MAX;
cout << "int is " << sizeof(int) << " bytes." << endl;
cout << "short is " << sizeof n_short << " bytes." << endl;
cout << "long is " << sizeof n_long << " bytes." << endl;
cout << "long long is " << sizeof n_llong << " bytes." << endl;
cout << endl;
cout << "Maximum values:" << endl;
cout << "int: " << n_int << endl;
cout << "short: " << n_short << endl;
cout << "long: " << n_long << endl;
cout << "long long: " << n_llong << endl;
cout << endl;
cout << "Minimun int value = " << INT_MIN << endl;
cout << "Bits per byte = " << CHAR_BIT << endl;
return 0;
}
头文件limits定义了符号常量来表示类型的限制(如INT_MAX)等
sizeof对类型名(如:int)应使用括号(),对变量名(如:n_int )则不用
本代码主要展现了各类型所占字节的大小以及所代表的最大最小值
3.2 exceed.cpp
#include <iostream>
#define ZERO 0
#include <climits>
int main()
{
using namespace std;
short sam = SHRT_MAX;
unsigned short sue = sam;
cout << "sam has " << sam << " dollars and sue has" << sue << " dollars " << endl;
sam += 1;
sue += 1;
cout << "sam has " << sam << " dollars and sue has" << sue << " dollars " << endl;
sam = ZERO;
sue = ZERO;
cout << "sam has " << sam << " dollars and sue has" << sue << " dollars " << endl;
sam -= 1;
sue -= 1;
cout << "sam has " << sam << " dollars and sue has" << sue << " dollars " << endl;
return 0;
}
本代码主演探讨有符号整型和无符号溢出时的数据。
无符号最大值加1后溢出,变为最小值,而有符号最大值则远未达到
无符号由0减一后为-1,而有符号则溢出,变为最大值
3.3 hexoct.cpp
#include <iostream>
int main()
{
using namespace std;
int chest = 42;
int waist = 0x42;
int insem = 042;
cout << "chest = " << chest << " (42 in decimal)" << endl;
cout << "waist = " << waist << " (0x42 in hex)" << endl;
cout << "insem = " << insem << " (042 in octal)" << endl;
return 0;
}
本函数讲了不同进制下的42以十进制显示的数字
默认情况下,cout以十进制显示整数
3.4 hexoct2.cpp
#include <iostream>
int main()
{
using namespace std;
int chest = 42;
int waist = 42;
int insem = 42;
cout << "chest = " << chest << " (42 in decimal)" << endl;
cout << hex;
cout << "waist = " << waist << " (0x42 in hex)" << endl;
cout << oct;
cout << "insem = " << insem << " (042 in octal)" << endl;
return 0;
}