数据如何存储在计算机中(float类型为例)

对于一个float类 型(浮点型)的数据,在c++中的存储方式。

首先,计算机只能识别0和1,也就是每个bit位只存0或1. 一个字节的大小为8个bit位。

float类型占四个字节,也就是32个bit位,用32位“0或1”来存储。

这32位分别为:符号位(1位)移码(8位)尾数(23位)

其中,符号位:0代表正数,1代表负数。移码:存储指数。尾数:存“小数点移位后的小数部分”。

以例子float x = 13.625说明。

根据上一篇《十进制转二进制》的方法可知 13.625 —> 1101.101

现在把1101.101转换成32个bit位数据:

第一部分(符号位),

由于1101.101为正数,故符号位为0(若负数则符号位为1)。

第二部分(移码),

移码为:指数+127

在存储时,尾数只存小数部分,把小数点移至小数点前只有一位,即

1101.101 —> 1.101101

此时小数点左移了3位,即指数为3,即移码 = 指数+127 = 3 + 127 = 130

转换成二进制: 130 —> 1000 0010

即移码的8个bit位是:1000 0010

第三部分(尾数),

尾数存储的是移位后小数点后的部分,不足23位的在后面补0:

1.101101 —> 101101 —> 101101 00000000000000000

(6位) (17个0)

所以,float x = 13.625 在计算机中存储的32个bit位是:

0 1000 0010 1011 0100 0000 0000 0000 00

(符号位) (8位移码) (尾数)
————————————————
版权声明:本文为CSDN博主「阳冲亦右」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/qq_53606700/article/details/160635598

posted @ 2026-05-08 13:23  阳冲亦右  阅读(24)  评论(0)    收藏  举报