我有一个带符号的十六进制字符串FFFF
。所以当我把它转换成一个整数时,它应该是-1。但当我使用int.Parse
/int.TryParse
或System.Convert.ToInt32
时,它会给我值65535
。
var rawValue = int.Parse("FFFF", System.Globalization.NumberStyles.HexNumber);
// rawValue = 65535
var rawValue = Convert.ToInt32("FFFF", 16);
// rawValue = 65535
有什么想法可以让解析/转换函数识别它的有符号十六进制字符串吗?
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