C#中16进制string字符串的转16byte互转

贴一个找到的现成16进制互转方法

首先先来看数据源

C1 C1 17 11 2B 00 08 D9 6B 30 01 00 01 00 00 1E 84 80 13 88 00 00 00 00 00 00 00 03 00 01 00 0F 42 40 00 00 00 55 01 01 00 00 00 00 00 00 00 00 00 00 

这是一个16进制的字符串,具体怎么切割操作就不说了,直接上转换代码

byte.Parse(
      tempArray[i], System.Globalization.NumberStyles.HexNumber, System.Globalization.CultureInfo.InvariantCulture.NumberFormat);

上面那个方法好像有点点问题,又找了一个能用的,放这里

        private static byte[] strToToHexByte(string hexString)
        {
            hexString = hexString.Replace(" ", "");
            if ((hexString.Length % 2) != 0)
                hexString += " ";
            byte[] returnBytes = new byte[hexString.Length / 2];
            for (int i = 0; i < returnBytes.Length; i++)
                returnBytes[i] = Convert.ToByte(hexString.Substring(i * 2, 2), 16);
            return returnBytes;
        }

这样就可以了

 

那么16进制byte[] 转回字符串呢?

 string hex = BitConverter.ToString(tempBytes, 0, tempBytes.Length).Replace("-", string.Empty);

结束

 

posted @ 2021-10-30 13:50  王月半子  阅读(1580)  评论(0编辑  收藏  举报