我可以用以下方法将一个字节转换为十六进制数:
myByte.ToString("X")
但如果数字小于0x10,它只有一位数。我需要在前面加上一个零。有没有一种格式化字符串可以在单个调用ToString
中实现这个功能?
我可以用以下方法将一个字节转换为十六进制数:
myByte.ToString("X")
但如果数字小于0x10,它只有一位数。我需要在前面加上一个零。有没有一种格式化字符串可以在单个调用ToString
中实现这个功能?
我相信是myByte.ToString("X2")。
也许你喜欢按照以下方式进行:
private static void byte2hex(byte b, StringBuilder buf)
{
char[] hexChars = { '0', '1', '2', '3', '4', '5', '6', '7', '8', '9',
'A', 'B', 'C', 'D', 'E', 'F' };
int high = ((b & 0xf0) >> 4);
int low = (b & 0x0f);
buf.Append(hexChars[high]);
buf.Append(hexChars[low]);
}
X2
中的数字“2”表示有两个数字。例如,0A。而X4
则表示显示000A。 - checksumstring.Format("{0:X2}",myByte)
,自C# 6起,也可以使用$"{myByte:X2}"
形式。 - Konamiman255.ToString("X2")
返回FF
,而255.ToString("x2")
返回ff
。 - Steven Rands