C# 有符号十六进制字符串到整数

C# 有符号十六进制字符串到整数,c#,.net-core,hex,C#,.net Core,Hex,我有一个有符号的十六进制字符串FFFF,它是有符号的。所以当我把它转换成整数时,它应该是-1。但是当我使用int.Parse/int.TryParse或System.Convert.ToInt32时,它会给出值65535 var rawValue = int.Parse("FFFF", System.Globalization.NumberStyles.HexNumber); // rawValue = 65535 你知道如何让parse/convert函数识别有符号十六进

我有一个有符号的十六进制字符串
FFFF
,它是有符号的。所以当我把它转换成整数时,它应该是-1。但是当我使用
int.Parse
/
int.TryParse
System.Convert.ToInt32
时,它会给出值
65535

var rawValue = int.Parse("FFFF", System.Globalization.NumberStyles.HexNumber);
// rawValue = 65535

你知道如何让parse/convert函数识别有符号十六进制字符串吗?

FFFF
如果转换为16位有符号整数,则为-1。 所以你可以试试

var x = Int16.Parse("FFFF", System.Globalization.NumberStyles.HexNumber); // x will be -1
如果您将其转换为32位(这是
int.Parse
所做的),它将是65535,因为符号位将是0

var x = Int32.Parse("FFFF", System.Globalization.NumberStyles.HexNumber); // x will be 65535

FFFF是65535 Int32所以。。。你是否在问“是否有类似于
System.Int16
的类型,在其他语言中通常称之为
short
”?我想在这篇文章[这篇文章]()中有一个答案。我想可能有某种方法可以向转换函数表明十六进制是“有符号的”。因此,它将识别以“FF…”开头的十六进制字符串将是负数。和两个人的赞美有关吗?
var x = Int32.Parse("FFFF", System.Globalization.NumberStyles.HexNumber); // x will be 65535