带符号的十六进制字符串到整数



我有一个带符号的十六进制字符串FFFF。所以当我把它转换成一个整数时,它应该是-1。但当我使用int.Parse/int.TryParseSystem.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

相关内容

  • 没有找到相关文章

最新更新