如何用C#实现将16进制数转换成有符号的10进制数?

例如:将FF68转换成-152
2025-04-24 18:41:58
推荐回答(2个)
回答1:

首先判断16进制字符串长度,也就是数据字节长度。
int16 是2字节、16bit、16进制字符串长度4位
int32 是4字节、32bit、16进制字符串长度8位
int64 是8字节、64bit、16进制字符串长度16位
其次,根据字符长度以及转换需求选择转换方法
“FF68”长度4位,应该选择ToInt16方法。选择更高位的转换方法会等效处理为无符号的数据,需要进一步转换。

回答2:

int a = Convert .ToInt32 ( ## ,16);
if (a> Convert .ToInt32 ( "7FFF" ,16)) a=a-Convert .ToInt32 ( "10000" ,16)