打开APP
userphoto
未登录

开通VIP,畅享免费电子书等14项超值服

开通VIP
实数如何在内存中存储

转自:http://my.oschina.net/ocare/blog/384339

(1) 二进制转换成十进制小数

1
2
3
4
5
ex:
     
    (101.1011)2=1*2^2+0*2^1+1*2^0+1*2^-1+0*2^-2+1*2^-3+1*2^-4
     
                4 + 0 + 1 + 0.5 + 0 + 0.125 + 0.0625 = 5.6875

(2) 十进制转二进制

1.整数部分:直接转换成二进制

2.小数部分:用2乘十进制小数,可以得积,将积的整数部分取出。在用2乘余下的小数部分,如此循环直到整数部分为0或者为1,此时的0或1为二进制的最后一位

ex:

十进制小数35.8125转换成二进制小数

(35)10=(100011)2

0.8125*2=1.625---------1

0.6250*2=1.250---------1

0.2500*2=0.500---------0

0.5000*2=1.000---------1

(0.8125)10=(0.1101)2

小数是如何在内存中存储?

    

小数在内存中,不管是单精度还是双精度,存储分为3部分

1.符号位     

2.指数位    //用科学计数法存储指数数据

3.尾数部分

其中指数部分有正负,偏移量为127

float  符号占1位,指数8位,尾数部分23位

double 符号占1位,指数11位,尾数部分52位

以35.8125为例来分析计算机如何存储的.

35.8125 二进制数据为 100011.1101

这里我们把二进制写成1.000111101×10^5.从这里我们可以分析出来小数点后面000111101是尾数部分,而指数部分就是127+5(10000100)

这样我们就得出35.8125 在内存中存储为 0 100 0010 0000 1111 0100 0000 0000 0000

0100 0010 0000 1111 0100 0000 0000 0000 (二进制)

  4    2    0    F    4    0    0    0  (十六进制)


本站仅提供存储服务,所有内容均由用户发布,如发现有害或侵权内容,请点击举报
打开APP,阅读全文并永久保存 查看更多类似文章
猜你喜欢
类似文章
常用的浮点数存储格式:32-bit IEEE-754 floating-point format
IEEE浮点数表示法(zz)
浮点数到整数的快速转换
阶码、定点整数
浮点数的二进制表示学习笔记
PIC单片机的浮点数格式及转换
更多类似文章 >>
生活服务
热点新闻
分享 收藏 导长图 关注 下载文章
绑定账号成功
后续可登录账号畅享VIP特权!
如果VIP功能使用有故障,
可点击这里联系客服!

联系客服