IEEE754标准浮点数转换

2023-05-16

原文:https://blog.csdn.net/hqh131360239/article/details/81353582

IEEE754标准浮点数转换

IEEE754标准是一种浮点数表示标准,一般分为单、双精度两种,单精度是32位的二进制数,双精度是64位的二进制数,一个浮点数的组成分为三个部分。

  • ①第1位是数符s,s=1表示负数,s=0表示正数。
  • ②第2-9位为阶码E, (双精度为2-12位)
  • ③第10-32位为尾数M (双精度为13-64位)

转换大致过程如下:
首先将十进制数转为二进制数,用类似于科学计数法的形式表示成
num=(-1)^s (1+M) 2^(E-127)(单精度)
num=(-1)^s (1+M) 2^(E-1023)(双精度)
然后将每部分算出的数值按顺序排列
例如:
-0.0625=-0.0001=-1.0*2^(-4)
s=1,M=1-1=0,E=-4 +127=123=0111 1011 ,E(双精度)=-4 +1023=1019 =0111 1111 011
单精度:1011 1101 1000 0000 0000 0000 0000 0000 (S E M顺序)
双精度:1011 1111 1011 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000

浮点数转换二进制

举例:22.8125转二进制,这样计算:
整数和小数分别转换。
整数除以2,商继续除以2,得到0为止,将余数逆序排列。

22 / 2    11 余 0
11 / 2     5 余 1
5 / 2      2 余 1
2 / 2      1 余 0
1 / 2      0 余 1

所以22的二进制是10110
小数乘以2,取整,小数部分继续乘以2,取整,得到小数部分0为止,将整数顺序排列。

0.8125x2=1.625 取整1,小数部分是0.625
0.625x2=1.25 取整1,小数部分是0.25
0.25x2=0.5 取整0,小数部分是0.5
0.5x2=1.0 取整1,小数部分是0,结束

所以0.8125的二进制是0.1101
十进制22.8125等于二进制10110.1101
工具1: http://www.styb.cn/cms/ieee_754.php
工具2: http://www.speedfly.cn/tools/hexconvert/

思路

第一步求二进制,负数按照正数处理,不用考虑原反补,s代表正负(正负数转换后只是第一位不同)
第二步按照公式计算S、E、M,其中E是需要转换成二进制的,但是M并不需要不够的后面补0。
比如:22.8125等于二进制10110.1101
22.8125—>10110.1101–>1.01101101* 2^4
单精度:S=0,E=4+127=131(8位),M=0.01101101(23位)
ans=0 10000011 01101101000000000000000
双精度:S=0,E=4+1023=1027(10位) M=0.01101101 (53位)
ans=0 1000000011 01101101000000000000000000000000000000000000000000000

GPS坐标工具:https://www.sunearthtools.com/dp/tools/conversion.php?lang=cn#help_Format

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

IEEE754标准浮点数转换 的相关文章

  • IBM 到 IEEE 浮点转换

    java中是否有任何标准方法可以将IBM 370 以字节形式 转换为IEEE格式 任何转换算法都会有所帮助 我尝试编写java代码 但我不明白我哪里出错了 当我将输入指定为 2 000000000000000E 02 时 我得到的值为 IE
  • 关于 NaN 运算的问题

    我的 SSE FPU 生成以下 NaN 当我执行任何基本的对偶运算 如 ADDSD SUBSD MULSD 或 DIVSD 并且两个操作数之一为 NaN 时 结果具有 NaN 操作数的符号 并且结果尾数的低 51 位将加载NaN 操作数尾数
  • IEEE“双精度”的精确文本表示

    我需要以人类可读的文本形式表示 IEEE 754 1985 双 64 位 浮点数 条件是文本形式可以解析回exactly相同的 按位 数字 如果不打印原始字节 这是否可能 实用 如果是 那么执行此操作的代码将不胜感激 最佳选择 使用 C99
  • 为什么我们需要 IEEE 754 余数?

    我刚刚读过这个话题 尤其是最后的评论 然后我想知道 为什么我们真正需要这个是为了给剩下的 但似乎之前没有多少人 在谷歌上 对此感兴趣 如果您正在寻找想要它的原因 其中之一就是所谓的 范围缩小 假设你想要sind用于计算参数正弦值 以度为单位
  • 快速找到以2为底的对数的整数部分

    计算浮点数以 2 为底的对数的整数部分的有效方法是什么 就像是 N ceil log2 f or N floor log2 f 对于浮点数 f 我想这可以以某种方式非常有效地实现 因为人们可能只需要访问浮点指数 EDIT2 我主要不感兴趣精
  • 在节点中将 ieee754 转换为十进制

    我在节点中有一个缓冲区
  • 如何将按位运算应用于 JS 数字的实际 IEEE 754 表示?

    在 JavaScript 中 每当您执行按位运算时 例如x lt lt 2 在实际发生移位之前 64 位浮点表示形式会转换为 32 位无符号整数 我有兴趣将这种转换应用于实际的 未改变的 IEEE 754 位表示 这怎么可能 您可以尝试先将
  • 现代 C 编译器中 __STDC_IEC_559__ 的状态

    C99添加了一个宏 STDC IEC 559 可用于测试编译器和标准库是否符合 ISO IEC IEEE 60559 或 IEEE 754 标准 根据这个问题的答案 如何检查 ieee 754 单精度 32 位浮点表示 https stac
  • R 中浮点精度的极端数值

    有人可以解释一下以下输出吗 我知道它与浮点精度有关 但数量级 差异 1e308 令我惊讶 0 高精度 gt 1e 324 0 1 TRUE gt 1e 323 0 1 FALSE 1 非常不精确 gt 1 1e 16 1 1 FALSE g
  • 为什么IEEE754单精度浮点数只有7位精度?

    为什么单精度浮点数具有 7 位精度 或双倍 15 16 位精度 谁能解释一下我们如何根据分配给 float Sign 32 Exponent 30 23 Fraction 22 0 的 32 位得出这一点 尾数的 23 个小数位 22 0
  • 为什么 Excel 不根据 8 字节 IEEE 754 进行舍入

    以下表达式的计算结果为false in C 1 1 0 85 3 lt 0 95 我想它在大多数实现 IEEE 754 的其他编程语言中都是这样做的 因为 1 1 0 85 3评估为0 95000000000000007 大于0 95 然而
  • 假设浮点数在 C 中使用 IEEE754 浮点数表示是否安全?

    浮点是在 C 中定义的实现 因此没有任何保证 我们的代码需要可移植 我们正在讨论是否可以在我们的协议中使用 IEEE754 浮点 出于性能原因 如果我们在发送或接收数据时不必在定点格式之间来回转换 那就太好了 虽然我知道平台和架构之间在大小
  • 在 C++ 中使用不同的 IEEE 浮点舍入模式

    不幸的是我 我必须确保 GPU 和 CPU 上的浮点结果相同 好的 我知道 IEEE 很关心我 并提供了一个很好的标准来遵循 并提供了几个舍入选项 并且 CUDA 部分已整理 有不同舍入模式的内在函数 所以这只是动机 但是在主机端 C 代码
  • 哪些语言向开发人员公开 IEEE 754 陷阱?

    我想出于教育目的玩这些陷阱 数值微积分中默认行为的一个常见问题是我们 错过 了错误运算中出现的 Nan 或 inf 默认行为是通过计算进行传播 但某些操作 如比较 会破坏链条并释放 Nan 并且其余处理将继续 而不会在算法的先前步骤中确认奇
  • C# 中的浮点数学一致吗?是真的吗?

    不 这不是另一个 为什么是 1 3 0 3 1 问题 我最近读了很多关于浮点的文章 具体来说 如何相同的计算可能会得到不同的结果在不同的架构或优化设置上 对于存储重播的视频游戏来说 这是一个问题点对点网络 https gamedev sta
  • IEEE 754:为什么谓词 == 和 != 没有发出信号?

    注意 了解IEEE 754 请耐心等待 IEEE 754 2008 表 5 2 列出了五个无序信号谓词及其否定 当关系无序时 它们会导致无效操作异常 该无效操作异常可以防止使用以下代码编写的程序中出现意外的安静 NaN 标准谓词 gt 及其
  • ULP(最后一位单位)和量子(IEEE 754)之间的区别

    From ULP 维基百科页面 https en wikipedia org wiki Unit in the last place John Harrison 提出的另一个定义略有不同 ULP x 是两个最近的跨界浮点数 a 和 b 之间
  • 融合乘加和默认舍入模式

    使用 GCC 5 3 可以编译以下代码 O3 fma float mul add float a float b float c return a b c 产生以下程序集 vfmadd132ss xmm1 xmm2 xmm0 ret 我注意
  • C IEEE-Floats inf 等于 inf

    在 C 中 在使用 IEEE 754 浮点数的实现中 当我比较两个 NaN 浮点数时 它返回 0 或 false 但是为什么两个都为 inf 的浮点数会被视为相等呢 该程序打印 equal 至少在带有 gcc 的 Linux AMD64 下
  • 二进制浮点加法算法

    我试图理解二进制级别的 IEEE 754 浮点加法 我遵循了一些在网上找到的示例算法 并且大量测试用例与经过验证的软件实现相匹配 我的算法目前只处理正数 但是 我没有得到与此测试用例的匹配 0000100011110011011001001

随机推荐

  • 写给夏燕第十一个男人

    悲哀 xff0c 李旧 xff09 是她第十一个男人 她想要什么呢 xff1f xff1f xff1f 很多男人吗 xff1f 很多是多少 xff1f 我是她第十个男人 xff0c 我原理她了 说自己以前走的路不可能回头了 xff0c 叫我
  • 美女登场

    不怕大家笑话 xff0c 我大学毕业时 xff0c 还是个处长 xff0c 所谓处长就是没有经过女人滋润的那种 xff0c 我想大家都知道我是什么意思的 其实 xff0c 上大学的时候我还是有些女人缘的 xff0c 毕竟在班上我的学习成绩还
  • 纠缠在回忆里的感伤

    一个身影从眼前晃过 xff0c 我本能的踩死了刹车 xff0c 车因为惯性向前使了一点后终于停了下来 xff0c 幸亏没有撞到那个骑车的老人 xff01 我尚惊魂未定 xff0c 额头冒出了冷汗 xff0c 好险 xff01 人在开车心却早
  • MySQL索引原理(标贝科技)

    标贝科技 https ai data baker com source 61 qwer12 填写邀请码fwwqgs xff0c 每日免费调用量还可以翻倍 什么是索引 xff1f 索引是帮助MySQL高效获取数据的数据结构 索引的本质就是数据
  • 最全最简单方法解决安装ROS的rosdep update超时错误

    最近利用虚拟机Ubuntu安装ROS xff0c 遇到了rosde update这一命令一直超时出错的问题 xff0c 在网上搜索很多资料 xff0c 终于解决 xff0c 所以总结一下解决方案 方法一 xff1a 手机开热点上网 不建议
  • c实现 udp通信

    1 创建对象 int udp socket 61 socket AF INET SOCK DGRAM 0 AF INET 网络通信协议 SOCK DGRAM 传输协议 属性默认 0 2 想接收信息就需要绑定地址信息 struct socka
  • 软件测试的生命周期及基本流程

    软件测试的基本流程 1 xff1a 需求分析 答 xff1a 仔细阅读需求文档 xff0c 理解需求文档 xff0c 主要是对业务的学习 xff0c 分析需求点 xff0c 参与需求评审会议 xff1b 2 xff1a 制定测试计划 答 x
  • 软件测试的分类有哪些?

    软件测试从整体来说分为开发阶段 测试单位阶段 测试技术阶段 开发阶段 xff1a 单元测试 集成测试 系统测试 验收测试 测试单位阶段 xff1a 内部测试 用户测试 第三方测试 测试技术阶段 xff1a 白盒测试 黑盒测试 灰盒测试 单元
  • 测试用例的八大设计方法

    从测试方法分为 xff1a 黑盒测试 等价类划分 边界值分析 因果图分析 错误测试 白盒测试 语句覆盖 判定覆盖 条件覆盖 判定 条件覆盖 多重条件覆盖 等价类划分 xff1a 答 xff1a 等价类划分是指某个输入域的子集合 xff0c
  • 软件测试中一个BUG的生命周期

    测试人员 发现BUG 提交BUG 指派前后端BUG 前后端开发确认BUG 不是BUG 关闭BUG 前后端开发修复BUG 回归验证BUG 二次开启BUG 是 关闭BUG BUG各种状态处理 答 xff1a 已指派 xff1a 测试人员已将BU
  • Fiddler抓取PC端微信小程序请求方法

    最近PC端的微信更新了 xff0c 在微信中也可以打开相对应的小程序了 xff0c 那么对于大多数测试同学来说要是可以在PC端打开小程序直接查看小程序发出的HTTPS请求报文 xff0c 那么定位问题也就太方便了吧 xff0c 我就是抱着这
  • 从Navicat切换到DBeaver的详细教程,一学即会。

    自从学会使用了Navicat xff0c 用一段时间发现Navicat有一些的问题缺陷 xff1a 1 需要购买花钱才能使用 xff0c 网上找的破解版也能使用 xff0c 但一些公司有版权限制 xff0c 又不能使用 xff1b 2 在连
  • VS code C/C++扩展包依赖cpptools-win32.vsix离线安装

    环境 xff1a 64位win10 xff0c VS code版本1 48 2 在visual studio code下自动安装C C 43 43 扩展包的依赖时 xff0c 可能会碰到如下异常和提示 xff1a 正在更新 C C 43 4
  • ROS错误:摄像头数据格式错误 wants topic /image/compressed to have datatype/md5sum

    ROS错误 摄像头数据格式错误 wants topic image compressed to have datatype md5sum 错误提示 xff1a ERROR 1260927377 348922000 Received erro
  • GMM-HMM声学模型实例详解(标贝科技)

    欢迎测试标贝科技AI开放平台 https ai data baker com source 61 qwer12 GMM HMM声学模型实例详解 GMM HMM为经典的声学模型 xff0c 基于深度神经网络的语音识别技术 xff0c 其实就是
  • C++学习笔记【六】—— 存储类

    Auto 声明变量时根据初始化表达式自动推断该变量的类型 声明函数时函数返回值的占位符 C 43 43 11已弃用 span class token keyword auto span f span class token operator
  • wget curl post请求

    wget header 61 User Agents Chrome header 61 Content Type Application json post data 61 url https zcool cloud resource te
  • 串口传输速率计算

    串口数据格式 起始位1bit xff0c 数据位8bit xff0c 停止位1bit xff0c 无校验 xff0c 无流控 xff1b 计算 波特率115200 bps xff1d 115200 位 秒 xff0c 没有校验位时 xff0
  • 位(bit), 字节(byte), 字(word),双字(dword or Qword)释义

    位 xff08 bit xff09 位 xff08 bit xff09 来自英文bit xff0c 音译为 比特 xff0c 表示二进制位 位是计算机内部数据储存的最小单位 xff0c 11010100是一个8位二进制数 一个二进制位只可以
  • IEEE754标准浮点数转换

    原文 xff1a https blog csdn net hqh131360239 article details 81353582 IEEE754标准浮点数转换 IEEE754标准是一种浮点数表示标准 xff0c 一般分为单 双精度两种