首先,之前的几篇代码都是用图片展示的,搜了下百度,代码区域可以使用代码内容
表示。注意:那个是键盘左上角的~`键,不是单引号,而且在英文输入法下才有效。
这会是一个说浅就浅,说深就是无底洞的问题。
怎么说呢,当学完计算机组成原理之后,这部分内容会相对容易理解。
C++数据类型,分为两类,基本数据类型和非基本数据类型。
基本数据类型(常用):
整型:short int long long long(4种) 如:int a = 10;
无符号整型:unsigned+short int long long long(其中任意一个) 如:unsigned int a;
布尔型:bool(0和1 或者 true或false) 如:bool a = false;
浮点型:float double 如:float a = 3.14;
字符型:char 如:char a = 'z'(用单引号表示);
空类型:void
非基本数据类型:
数组
结构体
联合体
枚举类型
在这篇笔记中,由于布尔型比较简单,主要介绍整型和浮点型
数据的存储:
之所以存在整型和无符号整型,是由于两种数据在计算机中的存储格式不一样。在计算机中,数据都是按照0和1存储的,每一个0或1是一位,一个字节byte为8位。如:01111111为一个字节。
整型存在正与负,按照目前的计算机,一般来说,int型或者unsigned int存储为32位。但是,int可表示正数和负数,unsigned int只有整数。对于一般编程来说,只是用int型即可,如果要表示的数据非常大,超出了int的表示范围,考虑long和long long。如果只有正数,可以考虑无符号类型。
以下内容在学习计算机组成原理很好理解:
int:有符号数字,在计算机中以补码表示,最高位为符号位,0表示这个数为正数,1表示该数字为负数。
unsigned int:无符号,最高位仍然为数值位,只表示正数。
举例来说:-5作为int型,在计算机中可以表示为111(补码表示)
如果该数字表示为无符号整型时,则为7。
对于一字节8位:int可以表示-128~127之间的数据,而unsigned int表示范围为0~255。
此外,浮点型用于表示小数,float与double只是精度不同。在计算机中,float的存储使用32位,而double使用64位,其中,存储计算的方式还是比较复杂的,具体可见计算机组成原理。而对于编程来说,知道能表示小数足够了。
这里有一个网站上的介绍:https://blog.csdn.net/u013412165/article/details/52557483
看不懂没关系,学完计组自然要明白(因为要考试,哈哈!)
下面,以我自己的计算机为例,显示整型所能表示的最大数字和存储所需字节数。
程序:
#include<iostream>
using namespace std;
int main() {
int n_int = INT_MAX;
short n_short = SHRT_MAX;
long n_long = LONG_MAX;
long long n_llong = LLONG_MAX;
cout << "int表示的最大值: " << n_int << endl;
cout << "short表示的最大值: " << n_short << endl;
cout << "long表示的最大值: " << n_long << endl;
cout << "long long表示的最大值: " << n_llong << endl;
cout << "int的字节数: " << sizeof(int) << endl;
cout << "short的字节数: " << sizeof(n_short) << endl;
cout << "long的字节数: " << sizeof(n_long) << endl;
cout << "long long的字节数: " << sizeof(n_llong) << endl;
system("pause");
return 0;
}
结果如下:
int表示的最大值: 2147483647
short表示的最大值: 32767
long表示的最大值: 2147483647
long long表示的最大值: 9223372036854775807
int的字节数: 4
short的字节数: 2
long的字节数: 4
long long的字节数: 8
从上面程序中可以很清晰的看到各个整型所表示的最大值,所以在不超出数据的表示范围时,可以随意选择数据的类型,但是也应当看到范围大的类型需要的存储空间也大,考虑到内存占用,选择合适的就好。