在网络通信中常利用字节数组(byte[]) 收发数据,是因为计算机中只能识别0/1编码,一个字节Byte 占8 位 bit(0/1编码),非常方便的表达二进制bit流 的传输序列。而网络抓包或收发数据包检测分析时常利用16进制格式显示,因为二进制书写较长,难以记忆,而每4个二进制位对应1个16进制位,两位16进制的数刚好表达一个字节(8位),比较直观。
二进制和16进制之间具有对应关系见下表
例如:180 对应的二进制为:10110100 ,由上表得到 1011 = B, 0100=4 ,所有180的16进制表示为:B4
例如下图:字符串ASCII编码后对应的16进制表示:
在C#中有一个数据基本类型byte表示范围0到255,经常需要进行字符串转16进制、及16进制与byte或byte[]的转化。
1:单个byte转16进制字符串
byte _byte = 97; string result= Convert.ToString(_byte, 16);// result&