数据类型存在的原因主要是两点:避免错误,优化内存。
避免错误
在原来我写的博客中,我将所有数据类型简化为:字符,整数,浮点数,不管我们在学什么编程语言,除去要认识这个语言所存在的各种数据类型,也一定会学数据类型间的转换,我下面讲解我对此的理解:
虽然计算机中的数据都是以0,1存储;但不同类型的数据,存储的规则是不一样的,整数通常直接存储为固定长度的二进制数;浮点数使用IEEE 754标准来存储,分为符号位、指数位和尾数位。
因此,5和5.0在计算机看来是不一样的
这是计算机看到的5.0:
0 10000001 01000000000000000000000
这是计算机看到的5
00000000 00000101
可以看到,虽然我们知道5和5.0是完全一致的,但在计算机看来完全不是这样,如果没有数据类型的分类,我们去写5-5.0,结果就不知道会是什么了。
字符和浮点数的存储很类似,浮点数依靠IEEE 754标准,而字符主要靠ASCII,我们知道前面的00000101在整数中代表5,但它在字符中,却代表一个控制字符,称为ENQ(Enquiry),通常不表示一个可见的文本字符。
总结一下,对于整数,我们就以最直观的常规二进制来存储,但对于字符和浮点数,我们肯定也是用二进制来存储,但需要给它们特殊的标准,以和整数相分别,避免错误。
优化内存
int a = 5
同一类数据类型的字节是一样多的,而计算机存储数据,就像俄罗斯方块一样,并不是所有数据按照时间的堆叠,是按照俄罗斯方块这种寻找最优解的方式来的。这样,分出来数据类型,提前告诉计算机这个数据需要多少空间,能够帮助计算机更好的存放,这也就是为什么,像C语言这种偏底层的语言,在声明变量前要说数据类型,本质就是在告诉计算机我占多少地方,先把我的地方腾出来。