整数浮点数在内存中的储存

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

好的,那么今天的知识就暂时到这里,我们下次再见

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值