[problem]C++各种类型

刷LeetCode的时候经常要解决越界的问题,比如INT_MIN取绝对值就越界了,所以知道没种类型的最小值及最大值很有必要。

long和int一般都是4字节,但是long在32位系统和64位系统不同,但我自己电脑64位win 8.1测试还是4个字节,可能和VS的设置也有关系。

所以解决越界问题用long long代替int就OK了。

 1 #include<iostream>
 2 #include<string>
 3 #include <limits>
 4 using namespace std;
 5 
 6 int main()
 7 {
 8     cout << "type: \t\t" << "************size**************"<< endl;
 9     cout << "bool: \t\t" << "所占字节数:" << sizeof(bool);
10     cout << "\t最大值:" << (numeric_limits<bool>::max)();
11     cout << "\t\t最小值:" << (numeric_limits<bool>::min)() << endl;
12     cout << "char: \t\t" << "所占字节数:" << sizeof(char);
13     cout << "\t最大值:" << (numeric_limits<char>::max)();
14     cout << "\t\t最小值:" << (numeric_limits<char>::min)() << endl;
15     cout << "signed char: \t" << "所占字节数:" << sizeof(signed char);
16     cout << "\t最大值:" << (numeric_limits<signed char>::max)();
17     cout << "\t\t最小值:" << (numeric_limits<signed char>::min)() << endl;
18     cout << "unsigned char: \t" << "所占字节数:" << sizeof(unsigned char);
19     cout << "\t最大值:" << (numeric_limits<unsigned char>::max)();
20     cout << "\t\t最小值:" << (numeric_limits<unsigned char>::min)() << endl;
21     cout << "wchar_t: \t" << "所占字节数:" << sizeof(wchar_t);
22     cout << "\t最大值:" << (numeric_limits<wchar_t>::max)();
23     cout << "\t\t最小值:" << (numeric_limits<wchar_t>::min)() << endl;
24     cout << "short: \t\t" << "所占字节数:" << sizeof(short);
25     cout << "\t最大值:" << (numeric_limits<short>::max)();
26     cout << "\t\t最小值:" << (numeric_limits<short>::min)() << endl;
27     cout << "int: \t\t" << "所占字节数:" << sizeof(int);
28     cout << "\t最大值:" << (numeric_limits<int>::max)();
29     cout << "\t最小值:" << (numeric_limits<int>::min)() << endl;
30     cout << "unsigned: \t" << "所占字节数:" << sizeof(unsigned);
31     cout << "\t最大值:" << (numeric_limits<unsigned>::max)();
32     cout << "\t最小值:" << (numeric_limits<unsigned>::min)() << endl;
33     cout << "long: \t\t" << "所占字节数:" << sizeof(long);
34     cout << "\t最大值:" << (numeric_limits<long>::max)();
35     cout << "\t最小值:" << (numeric_limits<long>::min)() << endl;
36     cout << "unsigned long: \t" << "所占字节数:" << sizeof(unsigned long);
37     cout << "\t最大值:" << (numeric_limits<unsigned long>::max)();
38     cout << "\t最小值:" << (numeric_limits<unsigned long>::min)() << endl;
39     cout << "double: \t" << "所占字节数:" << sizeof(double);
40     cout << "\t最大值:" << (numeric_limits<double>::max)();
41     cout << "\t最小值:" << (numeric_limits<double>::min)() << endl;
42     cout << "long double: \t" << "所占字节数:" << sizeof(long double);
43     cout << "\t最大值:" << (numeric_limits<long double>::max)();
44     cout << "\t最小值:" << (numeric_limits<long double>::min)() << endl;
45     cout << "float: \t\t" << "所占字节数:" << sizeof(float);
46     cout << "\t最大值:" << (numeric_limits<float>::max)();
47     cout << "\t最小值:" << (numeric_limits<float>::min)() << endl;
48     cout << "size_t: \t" << "所占字节数:" << sizeof(size_t);
49     cout << "\t最大值:" << (numeric_limits<size_t>::max)();
50     cout << "\t最小值:" << (numeric_limits<size_t>::min)() << endl;
51     cout << "string: \t" << "所占字节数:" << sizeof(string) << endl;
52     cout << "type: \t\t" << "************size**************"<< endl;
53     return 0;
54 }

posted @ 2015-08-17 16:10  Sean_le  阅读(314)  评论(0编辑  收藏  举报