1.整型
我们都知道计算机在储存数据的时候是按照二进制数字储存的,那么对于我们输入的10进制整形数据来说,就需要将其转换成二进制数据才能储存。
一个int类型的数据大小是4个字节,也就是32个比特位,对于有符号整型,第一个比特位一般用来存储符号位,0表示正数,1表示负数。
而对于无符号整型来说,32个比特位就都是数据位,因此无符号整型要比有符号整型能够表示的数据大得多。
计算机储存数据储存的是数据的补码,对于正数,数据的原码反码补码相同,对于负数补码的计算方法是源码取反加1,取反操作是符号位不变剩下位置0变为1,1变为0.
大端存储和小端存储
好了我们了解过整形类数据的存储后,接下来学修一下数据的大小端存储,其实大小端存储就是一种数据的储存方法,一般在不同编译器中数据会按照16进制显示每次存储的一个字节的数据。
以下图示可以帮我们更好的理解
假设我们向内存中存储了一个整形数据1
所谓的小端存储法指的是高地址数据存入了低地址
1的16进制序列是00 00 00 01,所以最后一个字节的01就是高地址数据,而将高地址数据存到了低地址就是小端存储法,可以简单理解为倒着存,如图所示
打断存储法与之相反,就是正着存,如图所示
我们常用的vs编译器就是小端存储法
2.浮点型
浮点型的类型有float,double,long double等类型,都是同样的存储逻辑
先将小数点前后的数据改写成二进制,小数点后的数据每一位表示2的-n次方
浮点类型的数据转化为科学计数法的形式
s是符号位,0表示整数1表示负数
M表示数据在用科学计数法转化后的数据
M在储存时只储存小数点后的数据,因为电脑只能储存0或1所以浮点数一般改写后的小数点前的前一位都是1,只有需要储存0这样非常小的数据时才会时0
对于float类型的数据第一位储存S,接着8个比特位存储E,剩下的存储M
对于double类型的数据,第一位储存储存S,接着11为储存E,剩下的储存M
好的,那么今天的知识就暂时到这里,我们下次再见