为什么有各种各样的数据类型?
信息以什么特征来区分类型呢?
数据类型的本质
一对情侣去上大课,
肯定要挑选2个挨着的座位;
一个寝室的4个女生去上大课,
那最好是一排空座的优先——
不同的类型占用的地方就不一样大。
一对情侣和双方父母一起吃饭,饭桌上其乐融融,结果两人回寝室路上都收到了自己妈妈的微信“他(她)配不上你呀!”——
同样的两个人,观察角度不同,竟然得到了完全相反的结论。
这就是数据类型的本质,它告诉内存:
- 占用多大的空间
- 0101...如何解析
让我们从更加底层的计算机存储数据方式说起。
如同人体细胞一样的结构叫做比特 (Bit), 用来存储0, 1的信息,也是存储的最小单位。就如同圆角分一样,计算机引入了大一点的单位——字节 (Byte), 1Byte=8bit。
如果我们现在硬盘的大小是1TB的话,1TB=1024GB= (10^12) Byte。所以大家知道你的电脑能存下多少个0, 1了吧。
换算公式:
1TB→1024GB 1GB→1024MB 1MB→1024KB 1KB→1024Byte
基础数据类型
长度决定了精度,3.14159265358...的精度肯定是优于3.14。
下面来一下迷之画风的数据类型存储示意图,不分整型和浮点型,我都不知道怎么存储小数点。
溢出及类型转换
一个瘦子穿L码叫oversized,一个胖子穿S码叫广东腊肠。
- 溢出
当我们定义了一个占用4Byte的int类型数据时,非要把他塞到2Byte的short类型中,抱歉,前面2Byte信息就丢掉了,这个就是溢出。
- 类型转换
同时我们切记只能将类型级别高的类型转换为数据类型低的数据
int → unsigned int → long
float → double → long double
- 基础的语法
int intNumber = 12;
long longNumber = (long) intNumber;
如果是整数和小数之间相互转换,则可能丢失精度。
float floatNumber = 3.2;
int intNumber = (int) floatNumber; // intNumber 是3,0.2已经丢了
int intNumber = 5;
float floatNumber = (float) intNumber; //floatNumber是5.0,还可以接受
- 总结
如果是数学运算,尽量使用int、double等精度高的数据类型;对于特别的业务场景(如淘宝百亿级订单),则使用long型的数据。
感谢你的阅读,更多学习干货、就业信息,欢迎关注我们。
官网:www.bmatch.tech
微信公众号:Bmatch(id: bmatch)