当前位置: 首页 > news >正文

【数据存储】浮点型在内存中的存储

       

目录

一、存储现象

二、IEEE标准规范

         1.存储

         2.读取

三、举例验证

        1.存储

        2.读取


浮点型存储的标准是IEEE(电气电子工程师学会)754制定的。

一、存储现象

        浮点数由于其有小数点的特殊性,有很多浮点数是不能精确存储的,如:3.14,5.3,等等都不能在内存中以3.14或者5.3的形式存储。

二、IEEE标准规范

        

         1.存储

        如上图所示,32位单精度浮点数存储的标准是1位符号位+8位指数位+23位有效数字位。

        其中,符号位S与正负数标准相同,0就代表是正浮点数,1就代表是负浮点数。

        接下来是指数位E,它的计算与十进制的科学计数法相同,二进制序列想表示成1.xxx的小数点向左移动了几位,就是几,在存储的过程中需要加上127/2047(为了能表示出负的指数位)。

        最后留给有效数字M的位有23位,这23位中放的都是1.xxx中xxx的内容,因为每个浮点数都表示为了1.xxx,所以将“1.”省略,这样可以提高1位的精度。

         2.读取

        读取与存储是互逆的过程。

        第一位符号位S照常读取。

        后8位是指数位M,要分三种情况进行读取:

        1)8位中有0有1,这是正常的情况,如果是float,那就将这个二进制序列减去127就得到真实的M。

        2)8位全为0,说明存的时候指数位是-127或者-2047,为了拟合这个很小的数字,在读取时指数位规定为1-127 = 126,有效数字不再加“1.”,直接加“0.”。

        3)8位全为1,说明存的时候指数位是0。

        最后23位是有效数字E,按照二进制规则进行读取。

三、举例验证

        以3.14为例。

        1.存储

        2.读取

http://www.lryc.cn/news/18519.html

相关文章:

  • Servlet笔记(8):异常处理
  • stm32f407探索者开发板(二十一)——窗口看门狗
  • C++ 模板
  • C++中的友元及运算符重载
  • 五、运行时数据区内部结构、JVM中的线程
  • Codeforces Round #848 (Div. 2)A-C
  • 机器学习笔记之近似推断(一)从深度学习角度认识推断
  • 指针的进阶
  • 一元二次方程方程的类
  • Ask林曦|来回答,30个你关心的日常问题(二)
  • 哪款电容笔适合开学季?电容笔和Apple Pencil的区别
  • Qt之Qprocess
  • 为什么不愿意专升本 学历有什么用
  • 构造函数的使用大全
  • ASP.NET Core MVC 项目 IOC容器
  • ARM工控机/网关- 钡铼技术
  • 为什么都在喊数据可视化?它究竟怎么做?
  • nodejs+vue停车场停车位短租系统vscode
  • 物理真机上LUKS结合TPM的测试 —— 使用随机数密钥
  • Linux USB 开发指南
  • FreeRTOS入门(03):队列、信号量、互斥量
  • Biome-BGC在模拟过程中,如何使用Linux、Python等,完成前处理和后处理工作???
  • 【unittest学习】unittest框架主要功能
  • 京东测开岗3+1面经+经验分享,拿到offer,月薪34k....
  • 后端接收格式为x-www-form-urlencoded的数据
  • LeetCode 707. 设计链表
  • HTTP的主要作用是什么
  • SpringBoot系列-- @Enable 模块驱动
  • PHP程序员适合创业吗?
  • 2023年CDGA考试-第12章-元数据(含答案)