查看: 4710|回复: 11

[其他] 每天解决一个问题29天 :浮点型数据存储

[复制链接]
  • TA的每日心情
    开心
    2018-7-23 21:04
  • 签到天数: 103 天

    连续签到: 1 天

    [LV.6]常住居民II

    228

    主题

    5379

    帖子

    0

    金牌会员

    Rank: 6Rank: 6

    积分
    16702
    最后登录
    1970-1-1
    发表于 2015-9-22 22:30:28 | 显示全部楼层 |阅读模式
    本帖最后由 lkl0305 于 2015-9-23 22:53 编辑

    今天给大家分享一下存储器如何存储浮点型数据。

    ===================================================

    一、问题描述:
    在上位机与处理器之间采集数据通信时,经常需要传输数据,如果数据是浮点型数据,如何传递给计算机进行接收呢?处理器是如何保存浮点型的数据呢?

    二、解决办法:
    1、大家都知道,标准的单精度浮点型数据(float)占4个字节。
    2、可分为符号部分,指数部分和底数部分:

    3945.jpg
    其中:
    (1)符号部分——用来指示浮点数的正负,当最高位是1时,为负数,最高位是0时,为正数。
    (2)指数部分——占用8-bit的二进制数,可表示数值范围为0-255。但是指数应可正可负,所以IEEE规定,此处算出的次方须减去127才是真正的指数。所以float的指数可从 -126到128.
    (3)底数部分——实际是占用24-bit的一个值,由于其最高位始终为1,所以最高位省去不存储,在存储中只有23-bit。


    3、举个例子:
    假设有一数据-12.5,那么它在存储器中如何存储呢?
    (1)符号部分——1表示负数
    12.5用二进制表示就是1100.1,写成科学技术法:1.1001*2^3
    (2)指数部分——2^3,应此应该3+127=130=82H=10000010B
    (3)底数部分——底数部分去掉小数点前的1,应该为10010000000000000000000B

    合起来是:
    1    10000010    10010000000000000000000
    转换成十六进制存储:C1  48  00  00四个字节。
    在小端存储模式下应该是: 00 00 48 C1这样的方式存放。

    4、来看个我写的程序:
    3946.jpg
    5、延时效果:

    3947.jpg
    可以看到和我们计算的效果一样。

    三、感想与收获:
    1、浮点型数据的存储形式高清除了,就可以进行后面的传输。


    我知道答案 目前已有11人回答
    回复

    使用道具 举报

  • TA的每日心情
    开心
    2017-2-9 14:16
  • 签到天数: 17 天

    连续签到: 1 天

    [LV.4]偶尔看看III

    25

    主题

    1785

    帖子

    0

    金牌会员

    Rank: 6Rank: 6

    积分
    2250
    最后登录
    2024-6-11
    发表于 2015-9-22 23:15:50 | 显示全部楼层
    学习了,谢谢分享
    freescaleic.org.png
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    33

    主题

    292

    帖子

    0

    高级会员

    Rank: 4

    积分
    600
    最后登录
    2016-4-19
    发表于 2015-9-22 23:23:34 | 显示全部楼层
    学习了,谢谢分享
    回复 支持 反对

    使用道具 举报

  • TA的每日心情
    开心
    2019-10-17 08:07
  • 签到天数: 273 天

    连续签到: 1 天

    [LV.8]以坛为家I

    74

    主题

    2338

    帖子

    0

    金牌会员

    Rank: 6Rank: 6

    积分
    7508
    最后登录
    2021-8-30
    发表于 2015-9-23 08:04:27 | 显示全部楼层
    谢谢分享!期待后面的更加精彩
    回复 支持 反对

    使用道具 举报

  • TA的每日心情
    慵懒
    2018-11-15 16:18
  • 签到天数: 39 天

    连续签到: 1 天

    [LV.5]常住居民I

    16

    主题

    259

    帖子

    3

    高级会员

    Rank: 4

    积分
    993
    最后登录
    2023-1-6
    发表于 2015-9-23 09:08:14 | 显示全部楼层
    楼主果然高人。。。。当初我也迷茫浮点数的存储问题,但自从会了联合体,我就再也不关心浮点数怎么转换了  union  unfl{float ftemp; long ltemp; };   这样即可了。。。。
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    61

    主题

    965

    帖子

    0

    金牌会员

    Rank: 6Rank: 6

    积分
    2394
    最后登录
    1970-1-1
    发表于 2015-9-23 09:19:02 | 显示全部楼层
    c基础      
    回复 支持 反对

    使用道具 举报

  • TA的每日心情
    奋斗
    2025-5-7 09:07
  • 签到天数: 353 天

    连续签到: 1 天

    [LV.8]以坛为家I

    141

    主题

    8056

    帖子

    0

    金牌会员

    Rank: 6Rank: 6

    积分
    5785
    最后登录
    2025-5-7
    发表于 2015-9-23 10:12:41 | 显示全部楼层
    学习了,谢谢

                                               154120hhw0q0e0hpw374yw.png
    该会员没有填写今日想说内容.
    回复 支持 反对

    使用道具 举报

  • TA的每日心情
    开心
    2018-7-23 21:04
  • 签到天数: 103 天

    连续签到: 1 天

    [LV.6]常住居民II

    228

    主题

    5379

    帖子

    0

    金牌会员

    Rank: 6Rank: 6

    积分
    16702
    最后登录
    1970-1-1
     楼主| 发表于 2015-9-23 21:23:55 | 显示全部楼层
    小华-415468 发表于 2015-9-23 09:08
    楼主果然高人。。。。当初我也迷茫浮点数的存储问题,但自从会了联合体,我就再也不关心浮点数怎么转换了   ...

    结构体也是一种不错的方法


    0000.jpg
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    0

    主题

    8

    帖子

    0

    注册会员

    Rank: 2

    积分
    92
    最后登录
    2019-12-14
    发表于 2015-12-12 23:38:00 来自手机 | 显示全部楼层
    很好的资料
    回复 支持 反对

    使用道具 举报

  • TA的每日心情
    奋斗
    昨天 12:13
  • 签到天数: 2452 天

    连续签到: 8 天

    [LV.Master]伴坛终老

    17

    主题

    5361

    帖子

    5

    金牌会员

    Rank: 6Rank: 6

    积分
    11296
    最后登录
    2025-7-20
    发表于 2015-12-13 10:58:34 | 显示全部楼层
    学习了,谢谢分享!
    该会员没有填写今日想说内容.
    回复 支持 反对

    使用道具 举报

    您需要登录后才可以回帖 注册/登录

    本版积分规则

    关闭

    站长推荐上一条 /3 下一条

    Archiver|手机版|小黑屋|恩智浦技术社区

    GMT+8, 2025-7-21 18:09 , Processed in 0.108821 second(s), 31 queries , MemCache On.

    Powered by Discuz! X3.4

    Copyright © 2001-2024, Tencent Cloud.

    快速回复 返回顶部 返回列表