擅长:python、mysql、java
<p>LTSpice的.RAW二进制文件的头可以用UTF-16解码。如果试图转换整个二进制原始文件,那么只有头将被转换为文本。最后一个用UTF-16成功转换为文本的字符是“Binary:”。在这之后,你应该得到“中国符号”或其他不可读的东西。在</p>
<p>我使用了一个十六进制编辑器,比较了同一电路的原始ASCII文件和原始二进制文件。在ASCII文件中,可以找到“Values:”而不是“Binary:”,然后是十进制值。因此,在hex编辑器的帮助下,可以比较二进制代码和原始ASCII文件中的实际值。在</p>
<p>经过比较,我成功地解码了一个原始二进制文件。下面写的都是十六进制的。我有6个变量。这对以下领域有效:直流扫描、直流操作、瞬态和直流传输(对于交流分析和噪声总是2 x 8字节的双精度解码)。在</p>
<ol>
<li>在“Binary:”之后,总是有3个字节:000a00(0A-换行)</li>
<li>然后有8个字节,如果将其转换为双精度(float64),则给出正确的值</li>
<li>然后我有4个字节,如果把它转换成单精度(float32),它就给出了正确的值</li>
<li>给出一个值的4个字节重复5次(我有6个变量-标题“No.variables:”)</li>
<li>第2、3点。和4。重复进行,直到满足标题中“No.Points:”的数字。在</li>
</ol>
<p>我用的是LTSpice XVII。
另外,我使用了HxD Hex编辑器<a href="https://mh-nexus.de/en/hxd/" rel="nofollow noreferrer">https://mh-nexus.de/en/hxd/</a></p>
<p>编辑:非常重要:字节顺序是小尾数!<br/>
这意味着对于十六进制-aa77b8a2中的字节顺序,它应该以相反的顺序转换成-a2b877aa。
因此,AA 77 B8 A2十进制转换的单精度(float32)为-2.2e-13,A2 B8 77AA的十进制转换精度为-5e-18。在</p>