Dro*_*ode 24 c# hex byte type-conversion
这似乎是一个容易出问题,但我无法弄清楚.
我需要转换此字符<字节(十六进制表示),但如果我使用
byte b = Convert.ToByte('<');
Run Code Online (Sandbox Code Playgroud)
我得到60(十进制表示)而不是3c.
Dar*_*rov 16
您可以使用该BitConverter.ToString
方法将字节数组转换为十六进制字符串:
string hex = BitConverter.ToString(new byte[] { Convert.ToByte('<') });
Run Code Online (Sandbox Code Playgroud)
或者干脆:
string hex = Convert.ToByte('<').ToString("x2");
Run Code Online (Sandbox Code Playgroud)
char ch2 = 'Z';
Console.Write("{0:X} ", Convert.ToUInt32(ch2));
Run Code Online (Sandbox Code Playgroud)
得到60(十进制表示)而不是3c.
不,你没有得到任何代表.byte
在某些内部表示中,您得到的值为60/3c .当你看它时,即,当你将它转换为字符串(显式地ToString()
或隐式地)时,你得到十进制表示60.
因此,您必须确保将字节显式转换为字符串,指定所需的基数.ToString("x")
例如,将数字转换为十六进制表示:
byte b = Convert.ToByte('<');
String hex = b.ToString("x");
Run Code Online (Sandbox Code Playgroud)