在计算机里,平时常用的编码一般用的是16进制的字符串并不是二进制字符串,二个16进制的数刚好可以表示一个字节,十六进制使用起来更简短,换算的时候一位16进制数可以顶4位2进制数。而在我们写程序的时候,用到的一般是字节数组。它们之间是怎样转换的呢?下面介绍一下它们相互转换的方法。

16进制字符串转换成Byte数组

string hexString)
 {
     char[] charList = hexString.ToCharArray();
     byte[] resultList = new byte[charList.Length / 2];
 
     int byteCount = 0;
 
     for (int i = 0; i < charList.Length; i += 2)
     {
         //一个byte相当于两个16进制的数
         byte b = 0x00;
         b |= Convert.ToByte("0x0" + charList[i], 16);
         b <<= 4;//移位操作,左移4位
         b |= Convert.ToByte("0x0" + charList[i + 1],16);
         resultList[byteCount] = b;
         byteCount++;
     }
 
     return resultList;
 }

相关文章: