在C#中解析十六进制字符串

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

我有以下十六进制字符串(小端格式):

ffffffffffff0800272bfcf608004500

我需要将它解码成几个字段。我知道第一个字段是'版本'的标记,它是一个uint16。我有一个Python脚本解码上面的字符串,它告诉我'版本'是258.现在我正在尝试用C#解码它。

根据我的理解,uint16是2个字节,所以ffff(每个字符4位)应该给我'版本'标记正确吗?我用

UInt16.Parse("ffff");

但我得到错误:

"Input string was not in a correct format."

我究竟做错了什么?

c# parsing type-conversion hex
1个回答
1
投票

你可以这样做:

int result = int.Parse("ffff", System.Globalization.NumberStyles.HexNumber);

要么

int result = Convert.ToInt16("ffff", 16);

请注意,第二个参数是第一种情况下的提供者,而第二种参数是基础。

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