您的位置:首页 > 其它

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

2015-12-02 21:39 781 查看
整型就是……变量为整数的声明时的类型。看(四十二)

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)
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: