整型就是……变量为整数的声明时的类型。看(四十二)
byte是字节,通常是8位,可以表示256个数字,比如0~255或者-128~127。然后上代码:
#include<iostream> #include<climits> //这个头文件里面,包含了关于整型限制的信息,所以需要使用,如果是老式C,则是<limits.h> using namespace std; int main() { int n_int = INT_MAX; //将INT的最大值赋值给变量n_int short n_short = SHRT_MAX; //将SHRT(即short)的最大值赋值给n_short。不过为什么是SHRT?不懂 long n_long = LONG_MAX; //将LONG的最大值,赋值给n_long. long long n_llong = LLONG_MAX; //将LONG LONG的最大值,赋值给n_llong //sizeof operator yields size of type or of variable //这里要显示内存字节数(注意不是位数,1内存字节是8位) //其中sizeof 是一个操作符(不是函数)指的是返回一个类型或者对象所占的内存字节数。其中char的sizeof最小为1. cout << "int is " << sizeof(int) << " bytes." << endl; //sizeof(类型说明符,数组名或表达式); 注意,要加括号,特别是如果用内置类型名如int就更要加括号了。如果是常量或者表达式,可以不用 cout << "short is " << sizeof n_short << " bytes." << endl; //另一种用法, sizeof 变量名。 cout << "long is " << sizeof n_long << " bytes." << endl; //同上 cout << "long long is " << sizeof n_llong << " bytes." << endl; //同上 cout << endl; cout << "Maximum values(最大值):" << endl; //显示最大值,其中最大值的表示方式看上面,INT_MAX是int的最大值,SHRT_MAX是short的最大值等,注意SHRT_MAX没有O,而且,全部大写。最小值则为INT_MIN,即MAX换成MIN cout << "int: " << n_int << endl; cout << "short: " << n_short << endl; cout << "long: " << n_long << endl; cout << "long long: " << n_llong << endl << endl; cout << "Minimum int value = " << INT_MIN << endl; //显示最小值 cout << "Bits per byte =" << CHAR_BIT << endl; //CHAR_BIT为字节的位数(ps:还是不太懂,貌似是每一位是一个1/0开关,8位是8个,所以能表达0~255或者-128~127。16位是65536种数,32位和64位就大得多) //一字节(byte)通常是8位的内存单元,1KB是1024字节。一个字母是1字节,一个汉字通常是2字节(如果你存到文本文档里的话)。 system("pause"); return 0; }
输出结果:
int is 4 bytes. short is 2 bytes. long is 4 bytes. long long is 8 bytes. Maximum values(最大值): int: 2147483647 short: 32767 long: 2147483647 long long: 9223372036854775807 Minimum int value = -2147483648 Bits per byte =8
其中,short是2bytes,那么就是2*8=16位,所以可以表示65536种数,而int是4bytes,所以是4*8=32位,其最大可以表示65536*65536种数字。
另外,符号常量和表示:
INT_MAX ————int的最大值
INT_MIN ————int的最小值
SINT_MAX ————signed int的最大值
UINT_MAX ————unsigned int的最大值。
CHAR_BIT ————char的位数(不是字节数,即需要/8才是字节数)(另外,只能看CHAR的,不能看INT或者SHORT,因为这里意思是一字节等于多少位)
如果要看short,就换成SHRT(没有O),LONG就换LONG,LONG LONG 就换LLONG(比LONG前面多加一个L)。
看signed的前面就加S,看unsigned 前面就加U。
看最大值后面用MAX,看最小值后面用MIN,
看位数后面就用BIT(位数仅限CHAR_BIT)。
比如CHAR_BIT 的返回值是8
在选择用哪个整型的时候,主要取决于以下几个原则:
①通常没有特殊需求的话,就用int;
②如果只需要表示非负数(例如字数,人数),可以用unsigned int;
③如果要表示的数字可能大于16位数的最大值,那么就用long(即使在某些系统上,int可以表示32位。不过用long就可以避免在int只能表示16位的系统上出问题),long可以表示32位。llong则表示64位(应该吧??);
④假如要节约内存,那么在符合条件的情况下,可以用short。例如short a=1;把他从int为16位转移到int为32位的系统上,其占用内存量不变。假如int a=1; 那么转移的时候,占用内存量加倍;
⑤如果只需要一个字节,那么就用char。一个字节是8位(即最大为256)