(二十四)整型short,int,long,long long

来源:互联网 发布:蓝可儿事件 知乎 编辑:程序博客网 时间:2024/05/16 15:05

整型就是……变量为整数的声明时的类型。看(四十二)

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换成MINcout << "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: 2147483647short: 32767long: 2147483647long long: 9223372036854775807Minimum int value = -2147483648Bits 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)

 


1 0
原创粉丝点击