【问题标题】:How can I convert a hex value 81869400 into a decimal value 948681000如何将十六进制值 81869400 转换为十进制值 948681000
【发布时间】:2020-11-15 11:33:28
【问题描述】:

我有这个十六进制 = 81869400 我需要十进制= 948681000

在描述中我可以看到编码是 BCD8。 我投入了很多时间却找不到路。

【问题讨论】:

  • 您可以使用多种方法。但是如果我将十六进制的 81869400 转换为十进制,就是 2173080576。948681000 是从哪里来的?
  • 这是来自电能表的值,有效载荷采用 MBUS 编码
  • 这仍然没有改变十六进制的十进制值 81869400 => 2173080576 的事实。那么,您如何获得值 948681000?
  • 呃,不知道向您显示的确切 什么,但它肯定不是不同格式的相同值的两倍。要么你正在俯瞰某些东西,要么......等等!第二个值不是小数,它是 little-endian 与 big-endian,除了第二个值中的一个额外零绝对不属于那里。现在,请分享您的代码,以便我可以帮助您将值转换为您需要的值。
  • 没有代码,我无法为您提供更多帮助。请参阅 How to Askminimal reproducible example。我唯一能看到的是每对数字都以相反的顺序显示。也许你可以用这些信息做点什么。

标签: python-3.x hex encode bcd


【解决方案1】:

感谢一些 cmets 找到了解决方案。 BCD 编码意味着该值不是十六进制而是十进制编码“看起来”它的十六进制或二进制,但它不是。

所以只需要有正确的顺序。然后在消息的另一部分中提到了一个因素。

通过排序和因子可以创建正确的值。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2014-02-05
    • 1970-01-01
    • 2011-08-04
    • 2018-01-22
    • 2017-04-24
    • 2023-01-16
    • 1970-01-01
    相关资源
    最近更新 更多