我正在进行串行端口通信,并且在经过编码的bat文件中有一些信息。我需要提取翻译成十六进制的文件大小,但将其翻转(与内存有关),并且我需要获取正确的大小。
Here is the hex I have in my bat file(converted to decimal it's : 1178534144) 所以我在转换它时遇到很多问题...
and here is the hex number I need to get(int decimal it's 81734)
**编辑
这里是bat文件中的64个字节,我将其转换为十六进制,原因是使用ASCII无法读取。 Focus on the part marked with red(whole hex) and part in blue(it's the hex number I need to convert from 46 3f 01 00 to 0013f46
答案 0 :(得分:1)
使用Convert.ToInt32-Methode: (String, Int32)
作为基本参数
数值的底数,必须为2、8、10或16。
因此,代码应为(基数16的十六进制又称16)
int result = Convert.ToInt32("463F0100", 16); // 1178534144
答案 1 :(得分:0)
十进制数1178534144为0x463F0100。要获取小数81734,您需要旋转4个字节以获取0x00013F46。 在Windows下,您可以包含winsock.h并使用功能ntohl。 https://docs.microsoft.com/en-us/windows/desktop/api/winsock/nf-winsock-ntohl