将内存十六进制字符串转换为int

时间:2018-07-25 12:25:25

标签: c# string memory hex port

我正在进行串行端口通信,并且在经过编码的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

2 个答案:

答案 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