廊坊市网站推广/搜索引擎有哪些分类
IEEE754、linear11、linear16浮点数应用原理
- 1 浮点数应用
- 1.1 IEEE754 浮点数标准
- 1.2 PMBUS浮点数格式
- 2 浮点数原理
- 2.1 IEEE754 浮点数解析
- 2.2 PMBUS浮点数解析
- 3 浮点数代码应用
- 3.1 IEEE754 浮点数应用
- 3.1.1 将浮点变量赋值,直接打印整型(32位)变量
- 3.1.2 将整型(32位)变量赋值,直接打印浮点数变量
- 3.2 PMBUS 浮点数应用
- 3.2.1 浮点数转化为linear11格式
- 3.2.2 浮点数转化为linear16格式
- 3.2.3 linear格式转化为浮点数
- 4 总结
1 浮点数应用
1.1 IEEE754 浮点数标准
IEEE754标准,规定可4种标识浮点数值得方式,分别是但精确度(32位)、
双精度(64位)、延伸单精度(43bit以上)、延伸双精度(79bit以上)。其中32位模式有强制要求,其他都是选择性的。C语言float通常指单精度,double通常指双精度浮点数。
1.2 PMBUS浮点数格式
PMBUS中数据格式通常指线性数据格式(linear格式),常见应用格式有linear11和linear16。
2 浮点数原理
2.1 IEEE754 浮点数解析
以32位浮点数为准进行解析,长度32位浮点数的存储格式为4个字节,发送时按尾数低位、尾数中位、尾数高位、阶码及符号位的先后顺序。格式如下表所示。
符号位S 阶码位 E 尾数位 M (小数部分参数)
D31 D30-D23 D22-D16 D15-D8 D7-D0
浮点数符号 阶码 尾数高位 尾数中位 尾数低位
浮点数值 = (-1)S * 2(E-127) * (1 + M2(-23))
例如1:当32位浮点数为40H、A0H、00H、00H,即S=0,E=129,M=221,则:
浮点数值 = (-1)0 * 2(129-127) * (1 + 2212(-23))= 141.25=5.0 。
例如2:一个浮点数4.538,推算出IEEE754(32)标准二进制表示,则
(1)小数部分(最高23位00~22)
位00:0.538 *2 = 1.076 **** 取1
位01:0.076 *2 = 0.152 **** 取0
位02:0.152 *2 = 0.304 **** 取0
位03:0.304 *2 = 0.608 **** 取0
位04:0.608 *2 = 1.216 **** 取1
位05:0.216 *2 = 0.432 **** 取0
位06:0.432 *2 = 0.864 **** 取0
位07:0.864 *2 = 1.728 **** 取1
位08:0.728 *2 = 1.456 **** 取1
位09:0.456 *2 = 0.912 **** 取0
位10:0.912 *2 = 1.824 **** 取1
位11:0.824 *2 = 1.648 **** 取1
位12:0.648 *2 = 1.296 **** 取1
位13:0.296 *2 = 0.592 **** 取0
位14:0.592 *2 = 1.184 **** 取1
位15:0.184 *2 = 0.368 **** 取0
位16:0.368 *2 = 0.736 **** 取0
位17:0.736 *2 = 1.472 **** 取1
位18:0.472 *2 = 0.944 **** 取0
位19:0.944 *2 = 1.888 **** 取1
位20:0.888 *2 = 1.776 **** 取1
位21:0.776 *2 = 1.552 **** 取1
位22:0.552 *2 = 1.104 **** 取1
(2)则对于4.538的二进制表示
二进制:100.10001001101110100101111
尾数的要求转换:1.0010001001101110100101111 * 22整数位为1,小数点变换的位数n为2的n次,往左移动为正n,往右移动为负n。
所以阶码为:2+127=129 ,尾数为:0010001001101110100101111 (25位)
符号位为:0(正数),尾数位23位,0010001001101110100101111最后两位(11)去掉,第24位0舍1入。
则二进制32位:01000000100100010011011101001011+1
所以4字节为0x 40 91 37 4C。
同理,双精度浮点数变换原理相同,只是各部分尾数有差异而已。
2.2 PMBUS浮点数解析
(1)linear11格式解析
linear11数据格式由2个字节组成
字节1 字节0
N(为补码)(指数) Y(为补码)(尾数)
7 6 5 4 3 2 1 0 7 6 5 4 3 2 1 0
转换时,需将N Y转化为其原码进行计算
linear11数据数值 = Y(原码)* 2N(原码)。(Y:-1024+1023,N:-16+15)
例如1:linear11数据为0x97AB,解析数据:
(1)N = 0b10010,Y=0b11110101011,
N(原码)= 0b11110 = -14;
Y(原码)= 0b10001010101 = -85;
(2)数值 = -85 * 2-14,
例如2:数值为-45.39转化为linear11格式如何计算:
(1)先取Y值,将数值逐次乘以2,使得结果在±512~±1024之间,-45.39乘以2的4次方为-726.24,然后四舍五入取整为-726为Y值,
(2)N值为第一步的4次,取反,为-4
(3)最终结果为0xE52A
例如3:数值为-0.007转化为linear11格式如何计算:
(1)先取Y值,将数值逐次乘以2,使得结果在±512±1024之间,-0.007乘以2的16次方为-458.752,N值范围为(N:-16+15),所以不能继续乘2,然后四舍五入取整为-459为Y值,
(2)N值为第一步的16次,取反,为-16
(3)最终结果为0x8635
根据以上举例可知确定,在原有的数据基础上进行乘2(最大16次)运算,或者除2(最大15次)运算,若超次数则立即停止,在不超次数情况下使结果数据 坐落在±512~±1024之间,然后确定Y值和N值。
同理linear16原理雷同,注意各部分的数值范围。
3 浮点数代码应用
3.1 IEEE754 浮点数应用
使用共用体的方式实现数据快速格式转换,编译器会自动将单精度或者双精度浮点数存储在内存中,存储在内存中的数据就是16进制格式,故我们使用共用体实现数据快速转换,不需要进行数据推演,示例如下:
3.1.1 将浮点变量赋值,直接打印整型(32位)变量
3.1.2 将整型(32位)变量赋值,直接打印浮点数变量
3.2 PMBUS 浮点数应用
3.2.1 浮点数转化为linear11格式
根据在原有的数据基础上进行乘2(最大16次)运算,或者除2(最大15次)运算,若超次数则立即停止,在不超次数情况下使结果数据 坐落在±512~±1024之间,然后确定Y值和N值。代码如下。
3.2.2 浮点数转化为linear16格式
在原有的数据基础上进行乘2(最大16次)运算,或者除2(最大15次)运算,若超次数则立即停止,在不超次数情况下使结果数据 坐落在±16384~±32768之间,然后确定Y值和N值。代码如下。
3.2.3 linear格式转化为浮点数
根据公式,数据数值 = Y(原码)* 2N(原码)的格式,首先位定义我们使用有符号形式定义,然后获取对应Y和N值,引用math.h头文件,包含了pow函数,即可实现数据转换。
(1)linear11转化为浮点数。
(2)linear16转化为浮点数。
4 总结
关于IEEE754和PMBUS浮点数的运算常见的就是以上几种,实际使用时运用了结构体及共用体定义数据类型,运算中不必再次进行位运算等操作,关于结构体及共用体已在前面中有指导代码。
相关文章:

IEEE754、linear11、linear16浮点数应用原理
IEEE754、linear11、linear16浮点数应用原理 1 浮点数应用1.1 IEEE754 浮点数标准1.2 PMBUS浮点数格式 2 浮点数原理2.1 IEEE754 浮点数解析2.2 PMBUS浮点数解析 3 浮点数代码应用3.1 IEEE754 浮点数应用3.1.1 将浮点变量赋值,直接打印整型(32位…...

6、 垃圾回收 浏览器事件循环
垃圾回收 & 浏览器事件循环 垃圾回收引用计数算法标记清除(mark-sweep)算法标记整理(Mark-Compact)算法 内存管理浏览器事件循环宏任务微任务整体流程 垃圾回收 垃圾回收,又称为:GC(garbag…...

Java多线程面试重点-2
16.Synchronized关键字加在静态方法和实例方法的区别? 修饰静态方法,是对类进行加锁(Class对象),如果该类中有methodA和methodB都是被Synch修饰的静态方法,此时有两个线程T1、T2分别调用methodA()和methodB()&#x…...

LLaMA Factory多卡微调的实战教程(持续更新)
大家好,我是herosunly。985院校硕士毕业,现担任算法研究员一职,热衷于机器学习算法研究与应用。曾获得阿里云天池比赛第一名,CCF比赛第二名,科大讯飞比赛第三名。拥有多项发明专利。对机器学习和深度学习拥有自己独到的见解。曾经辅导过若干个非计算机专业的学生进入到算法…...

IOUtils的妙用
查看IOUtils的api文档,它的方法大部分都是重载的,方法的用法总结如下: 方法名使用说明buffer将传入的流进行包装,变成缓冲流。并可以通过参数指定缓冲大小closeQueitly关闭流contentEquals比较两个流中的内容的是否一致copy将输入…...

目标检测——室内服务机器人LifelongSLAM数据集
引言 亲爱的读者们,您是否在寻找某个特定的数据集,用于研究或项目实践?欢迎您在评论区留言,或者通过公众号私信告诉我,您想要的数据集的类型主题。小编会竭尽全力为您寻找,并在找到后第一时间与您分享。 …...

Mysql学习笔记-进阶篇
一、存储引擎 1、MYSQL体系结构 连接层、服务层、引擎层、存储层; 2、存储引擎简介 存储引擎就是存储数据、建立索引、更新/查询数据等技术的实现方式。存储引擎是基于表的,而不是库的,所以存储引擎也可被称为表类型。 1)在创…...

AI写真:ControlNet 之 InstantID
但是 IPAdapter-FaceId 目前只在 SD 1.5 模型上表现较好,SDXL 模型上的表现较差,不能用于实际生产。可是很多同学已经在使用SDXL了,而且SDXL确实整体上出图效果更好,怎么办? 这篇文章就来给大家介绍一个在SDXL中创作A…...

单元测试的思考与实践
1. 什么是单元测试 通常来说单元测试,是一种自动化测试,同时包含一下特性: 验证很小的一段代码(业务意义 或者 代码逻辑 上不可再分割的单元),能够更准确的定位到问题代码的位置 能够快速运行(…...

C# Socket通讯简单Demo
C# Socket通讯简单Demo Client端Listener端 Client端 static void Main(string[] args) {XSocketService XSocketService new XSocketService();XSocketService.Init();while (true){Console.Write("请输入消息:");var msg Console.ReadLine();XSocket…...

视频融合共享平台LntonCVS视频监控管理平台技术方案详细介绍
LntonCVS国标视频综合管理平台是一款以视频为核心的智慧物联应用平台。它基于分布式、负载均衡等流媒体技术进行开发,提供广泛兼容、安全可靠、开放共享的视频综合服务。该平台具备多种功能,包括视频直播、录像、回放、检索、云存储、告警上报、语音对讲…...

C#ListView的单元格支持添加基本及自定义任意控件
功能说明 使用ListView时,希望可以在单元格显示图片或其他控件,发现原生的ListView不支持,于是通过拓展,实现ListView可以显示任意控件的功能,效果如下: 实现方法 本来想着在单元格里面实现控件的自绘的…...

数据库选型实践:如何避开分库分表痛点 | OceanBase用户实践
随着企业业务的不断发展,数据量往往呈现出快速的增长趋势。使用MySQL的用户面对这种增长,普遍选择采用分库分表技术作为应对方案。然而,这一方案常在后期会遇到很多痛点。 分库分表的痛点 痛点 1:难以保证数据一致性。由于分库分…...

3个火火火的AI项目,开源了!
友友们,今天我要给你们安利三个超酷的开源项目,它们都和AI有关,而且每一个都能让你的日常生活变得更加有趣和便捷!(最近AI绘图又又超神了,分享以下美图养眼) 01 字节出品,文字转语音Seed-TTS 字节推出了一…...

算法 | 子集数排列树满m叉树二分搜索归并排序快速排序
子集树:O(2^n) 一个序列的所有子集为2^n,即可看成具有2^n个叶节点的满二叉树 int backtrack(int k) //k表示扩展结点在解空间树中所处的层次 {if(k>n) //n标识问题的规模output(x); //x是存放当前解的一维数组if(constraint(k)…...

SpringBoot配置第三方专业缓存技术jetcache方法缓存方案
jetcache方法缓存 我们可以给每个方法配置缓存方案 JetCache 是一个基于 Java 的缓存库,支持多种缓存方案和缓存策略,主要用于提升应用程序的性能和响应速度。它提供了多种缓存模式和特性,可以根据需求选择合适的缓存方案。 JetCache 的主…...

游戏开发丨基于PyGame的消消乐小游戏
文章目录 写在前面PyGame消消乐注意事项系列文章写在后面 写在前面 本期内容:基于pygame实现喜羊羊与灰太狼版消消乐小游戏 下载地址:https://download.csdn.net/download/m0_68111267/88700193 实验环境 python3.11及以上pycharmpygame 安装pygame…...

软件项目管理概述
1.什么是项目? 2.项目管理的定义 3.项目管理的本质 4.项目成功的标志 5.项目管理的基本方法 6.项目的生命周期(启动 计划 执行 控制 结束) 7.结合生活中的某件事,谈谈项目管理的作用 项目管理在日常生活中扮演着重要的角色&…...

FastAdmin后台开发框架 lang 任意文件读取漏洞复现
0x01 产品简介 FastAdmin是一款基于PHPBootstrap的开源后台框架,专为开发者精心打造。它基于ThinkPHP和Bootstrap两大主流技术构建,拥有完善的权限管理系统和一键生成CRUD等强大功能。FastAdmin致力于提高开发效率,降低开发成本,…...

数字时代PLM系统的重要性
什么是 PLM(产品生命周期管理)? 从最基本的层面上讲,产品生命周期管理 (PLM)是管理产品从最初构思、开发、服务和处置的整个过程的战略流程。换句话说,PLM 意味着管理产品从诞生到消亡所涉及的一切。 什么是 PLM 软件…...

安卓实现圆形按钮轮廓以及解决无法更改按钮颜色的问题
1.实现按钮轮廓 在drawable文件新建xml文件 <shape xmlns:android"http://schemas.android.com/apk/res/android"<!--实现圆形-->android:shape"oval"><!--指定内部的填充色--><solid android:color"#FFFFFF"/><!-…...

常用原语介绍
1.在Xilinx的example(wavegen example)中看到他们的顶层模块的输入输出管脚都手动例化原语IBUF以及OBUF——工具也会自动给我们加上不必要自己加 2.非mrcc个srcc的管脚输入的时钟信号,无法进入mmcm和bufg————试验过会报错 3.实际上&…...

29. 透镜阵列
导论: 物理传播光学(POP)不仅可以用于简单系统,也可以设计优化复杂的光学系统,比如透镜阵列。 设计流程: 透镜阵列建模 在孔径类型中选择“入瞳直径”,并输入2 在视场设定中。设置一个视场&…...

深入理解并打败C语言难关之一————指针(3)
前言: 昨天把指针最为基础的内容讲完了,并且详细说明了传值调用和传址调用的区别(这次我也是做到了每日一更,感觉有好多想写的但是没有写完),下面不多废话,下面进入本文想要说的内容 目录&#…...

Ubuntu-24.04-live-server-amd64启用ssh
系列文章目录 Ubuntu-24.04-live-server-amd64安装界面中文版 Ubuntu安装qemu-guest-agent Ubuntu乌班图安装VIM文本编辑器工具 文章目录 系列文章目录前言一、输入安装命令二、使用私钥登录(可选)1.创建私钥2.生成三个文件说明3.将公钥复制到服务器 三…...

Leetcode 2786. 访问数组中的位置使分数最大(DP 优化)
Leetcode 2786. 访问数组中的位置使分数最大 DP 以每个位置为结尾的序列的分数取决于前方的分数,根据奇偶性计算,取最大值 超时 class Solution {public long maxScore(int[] nums, int x) {int n nums.length;long dp[] new long[n];Arrays.fill(dp…...

【docker实战】使用Dockerfile的COPY拷贝资源遇到的问题
事情是这样的。 在我负责的golang项目中,使用硬代码验证某块逻辑。比如: 于是,为了解决硬代码的问题,我制作了表格工具:【开源项目】Excel数据表自动生成工具v1.0版 – 经云的清净小站 (skycreator.top)。 使用表格工…...

如何用多线程执行 unittest 测试用例实现方案
前言 使用python做过自动化测试的小伙伴,想必都知道unittest和pytest这两个单元测试框架,其中unittest是python的官方库,功能相对于pytest来要逊色不少,但是uniitest使用上手简单,也受到的很多的小伙伴喜爱。一直以来都…...

Ascend310 EP模式下容器内进行推理测试
EP模式下容器内进行推理测试 本文的软硬件环境如下: 机器:x86台式机一台 OS: 5.4.0-26-generic Ubuntu20.04 LTS 推理卡:DLAP200-HP-2(凌华基于atlas200模块打造的两模块推理卡) 1. 推理卡固件和驱动安…...

(el-Transfer)操作(不使用 ts):Element-plus 中 Select 组件动态设置 options 值需求的解决过程
Ⅰ、Element-plus 提供的Select选择器组件与想要目标情况的对比: 1、Element-plus 提供Select组件情况: 其一、Element-ui 自提供的Select代码情况为(示例的代码): // Element-plus 提供的组件代码: <template><div class"f…...