将两个原始值转换为 32 位 IEEE 浮点数

2024-02-02

我正在尝试通过 TCP modbus 解码来自 Shark 100 功率计的一些数据。我已经成功地拉下了我需要的寄存器,并从寄存器中留下了两个原始值,如下所示:

[17138, 59381]

从手册中,我知道我需要将这两个数字转换为32位IEEE浮点数。我还从手册中知道“低地址寄存器是 高阶一半(即包含指数)。”上面显示的列表中的第一个数字是低地址寄存器。

使用 Python(如果需要,任何库都可以),我如何获取这两个值并将它们转换为 32 位 IEEE 浮点值。

我尝试使用各种在线转换器和计算器来找出一种非编程方式来执行此操作,但是,我尝试过的任何操作都会得到超出范围的结果(在这种情况下我正在读取伏特,因此最终结果从上面提供的值来看应该在 120-122 左右)。


Python 3.6+ 的更新(f 字符串)。

我不知道为什么填写@B.Go的答案只是2。另外,由于字节顺序是大端字节顺序,因此我对其进行了硬编码。

import struct
a = 17138
b = 59381
struct.unpack('>f', bytes.fromhex(f"{a:0>4x}" + f"{b:0>4x}"))[0]

Output: 121.45304107666016

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

将两个原始值转换为 32 位 IEEE 浮点数 的相关文章

随机推荐

  • 如何使用蓝牙查找范围内的设备?

    我是 android 新手 我想开发一个应用程序 通过编程方式使用蓝牙来查找范围内的设备 如果有人有想法 请给我一些示例代码 Find The Devices in the Range by using Bluetooth programm
  • 如何使用 numpy 计算统计数据“t 检验”

    我正在寻找有关我在 python 中创建的模型的一些统计数据 我想对其生成 t 检验 但想知道是否有一种简单的方法可以使用 numpy scipy 来执行此操作 周围有什么好的解释吗 例如 我有三个相关的数据集 如下所示 55 0 55 0
  • SUMIF 的 Google Apps 脚本替代方案

    我对 JavaScript 相当陌生 希望通过制作一些简单的脚本来进步我的学习 这些脚本将帮助我自动化一些流程 我的第一个脚本是从电子表格中查找客户的预算 以便我可以计算活动是否需要暂停 到目前为止我已经得到了这个 function mai
  • 切换回packages.config - 答案澄清

    根据规则 我必须提出一个新问题 以获得对另一个问题 答案的一些澄清 这个答案是这样的 https stackoverflow com a 45964469 305916 https stackoverflow com a 45964469
  • 带有 html 内容的 bootstrap 弹出窗口

    我试图将 bootstrap popover 内容与 html 属性分开 就像对其他组件所做的那样 但我无法让它工作
  • Composer更新和Composer全局更新之间的区别

    两者有什么区别composer update and composer global update在yii2中 这与 Yii 没有直接关系 Composer 允许您全局或每个项目 默认 安装依赖项 https getcomposer org
  • 旧代码给出“未使用的参数”错误,但以前从未出现过

    我打开了一些旧的 iOS 代码 当我尝试构建它时 我收到如下代码的 未使用参数 错误 void searchBarTextDidBeginEditing UISearchBar searchBar NSLog Search Bar isn
  • C# if-null-then-null 表达式

    只是为了好奇 方便 C 提供了我所知道的两个很酷的条件表达式功能 string trimmed input null null input Trim and string trimmed input Trim 对于我经常遇到的情况 我想念另
  • 如何在 UICollectionViewCell 中舍入 UIImageView?

    在我的 UICollectionViewCell 类中我写了这个 void layoutSubviews super layoutSubviews self myImageView layer cornerRadius CGRectGetH
  • 在 Jenkins 管道中使用的 groovy 脚本中调用 shell 命令

    我有一个 Jenkins 管道脚本 其中加载了一个外部 Groovy 脚本 其中包含一些执行构建的函数 这些函数应该是普通的常规函数 因为如果有人在本地计算机上的某个地方运行构建 我也想在 Jenkins 之外使用它们 在这些函数中 我需要
  • html5:将画布复制到图像并返回

    我在画布元素上实现了放大和缩小功能 它的工作原理是缩放画布 平移画布 然后再次重绘整个场景 问题是 重新绘制所有内容需要花费很多时间 因为我的画布上有很多东西 我需要一种方法将画布复制到图像对象 然后将图像复制回画布而不损失质量 将canv
  • Rails 未定义 NilClass:Class 的方法“model_name”

    我有一个表单 我想出现在每个页面的顶部 因此我将其包含在 app views layouts application html erb 文件中 但出现错误undefined methodmodel name for NilClass Cla
  • 在 Web 应用程序中存储大型临时“会话”数据的好方法是什么

    我的公司有一个第三方网络服务 我们正在为其设计前端 此 Web 服务使用的 对象 非常大 并且根据创建的子实体的数量而变化 Web 服务不公开提交 加载子实体的方法 仅公开完整的对象层次结构 UI 本身分为许多子屏幕和主 详细视图 以便能够
  • Facebook:使用共享对话框共享 Play 商店链接

    我使用 Facebook Android SDK 中的共享对话框共享链接 我的代码如下所示 FacebookDialog shareDialog new FacebookDialog ShareDialogBuilder this setN
  • Django 模板:如何连接命名 URL 和字符串?

    我有以下设置 The urls py该项目的应用程序 urlpatterns url r main include main urls namespace main The main app s urls py urlpatterns ur
  • iPhone:如何加密字符串

    我想在 iPhone 上使用 AES 256 加密字符串 但通过谷歌没有找到太多信息 我想做的是将一些数据作为我正在创建的游戏的一部分发布到网站上 但我不希望用户能够通过查看其发布方式来作弊 因为它是纯文本 因此 我想将一个加密字符串发布到
  • CSS 文本转换“昂贵”吗?

    Closed 这个问题需要多问focused help closed questions 目前不接受答案 Is CSS text transform加工成本高吗 在我看来 浏览器被迫做一些通常不需要的工作 如果你没有转型 但是这是一个很大的
  • 将参数传递给 django admin 中的内联表单

    我有一个继承自 ModelAdmin 的管理类 class TemplateAdmin admin ModelAdmin inlines TemplateAttributeInline CompanyAttributeInline list
  • 什么是 ng-transinclude?

    我在 StackOverflow 上看到了很多讨论 ng transclude 的问题 但没有一个问题能通俗地解释它是什么 文档中的描述如下 标记使用嵌入的最近父指令的嵌入 DOM 的插入点的指令 这相当令人困惑 有人能够用简单的术语解释
  • 将两个原始值转换为 32 位 IEEE 浮点数

    我正在尝试通过 TCP modbus 解码来自 Shark 100 功率计的一些数据 我已经成功地拉下了我需要的寄存器 并从寄存器中留下了两个原始值 如下所示 17138 59381 从手册中 我知道我需要将这两个数字转换为32位IEEE浮