下面的代码产生了错误的结果。writeline十六进制字符串是9BFF,正确的值是FF9B。我做错了什么?
using System;
public class Program
{
public static void Main()
{
short s = -101;
short x = unchecked((Int16)0xff9B);
string hex = Convert.ToHexString(BitConverter.GetBytes(s));
Console.WriteLine(hex);
Console.WriteLine(x);
Console.WriteLine(Convert.ToInt16(hex,16));
}
}
结果:
9BFF
-101
-25601
您可以使用"X"
或"x"
(十六进制格式说明符)来指定ToString
:
public static void Main()
{
short intValue = -101;
string hex = intValue.ToString("X");
Console.WriteLine(hex);
}
演示