这个用户输入的编码是什么?

问题描述 投票:1回答:1

什么样的编码加密处理可以将下面的数值从左边的数值变成右边的数值?

  • 146.00 => 4046401A36E2EB1D
  • 36.30 => 4042266666666666
  • 76.22 => 40530E147AE147AE
  • 3865.20 => 40DA06683E8C7FD4
  • 0.200 => 3FC999999999999A

我正在处理一个来自我们工作中使用的软件应用程序的XML文件。我正试图建立一个工具,帮助解释和操作软件之外的XML文件,以允许在我们有限的许可证之外完成工作。在软件中,用户填写字段,并可以导入导出包含他们输入的信息的XML文件。当我在文本编辑器中打开这些XML文件时,所有的字段都被清楚地标注出来,就像它们在程序中一样。然而,用户输入的数据是被 "编码 "的(希望这是准确的术语),而且看起来是十六进制的。

我可以把字符串和整数输入转换成XML文件中的数据,尽管字符串是反向的(当用户输入 "9 mi w "时,十六进制解码为 "w im 9")。然而,用户输入的任何十进制数都给我带来了麻烦[编辑:我确定麻烦在于有关联单位的字段]。一些初步的研究让我想到了 "属性 "这个概念,但我对XML的了解还不够多,无法理解它的含义。下面是XML中的两行文字,第一行是用户数据在尝试解码时发挥得很好,第二行则是发生了别的事情。

<BRIDGE_ID HEX="true">#31</BRIDGE_ID> 这里的用户在桥号上输入了 "1"

<LENGTH Units="23" HEX="true">#3FD381D7DBF487FD</LENGTH> 这里用户输入 "1 "作为长度,程序在导出前强制将其改为1.00。这个字段的单位是英尺。

我发现,给值分配单位的字段是那些不能很好地反转的字段。任何没有单位的字段,即在XML中没有属性,在一个简单的网络解码器中都能很好地工作。所以属性在某种程度上使它复杂化了。在顶部的前5个例子中,第一个值是以英尺为单位(Units="23"),而第二个和第三个字段都是度数(Units="52")。

我知道这是所有的地方! 谢谢大家谁能说得通,帮帮我!

xml character-encoding attributes
1个回答
0
投票

对于第2、3和5个值,16位的十六进制字符串只是内部64位双精度IEEE浮点值的十六进制表示,其十进制表示出现在左边。

这对于第1和第4个值是行不通的,这里的十六进制字符串分别是44.50和26649.628817677338的表示。既然你说的是单位,也许可能涉及到从美制单位到公制单位的转换?

这个问题与XML无关。数据用XML标签包装,不代表就是XML问题。

© www.soinside.com 2019 - 2024. All rights reserved.