C# [字节数组]与[16进制字符串]互相转换
@[toc]
前言
十六进制(简写为hex或下标16)是一种基数为16的计数系统,是一种逢16进1的进位制。通常用数字0、1、2、3、4、5、6、7、8、9和字母A、B、C、D、E、F(a、b、c、d、e、f)表示,其中:A~F表示10~15,这些称作十六进制数字。
我们在做开发的过程中,经常需要将收发数据打印出来检查。如何简单高效的一行代码转换字节数组到字符串呢?我们来一起看看吧!
示例代码
[字节数组] 转 [16进制字符串]
byte[] bytes = new byte[] {
0xAA, 0xBB, 0xCC, 0x01, 0x02, 0x03 };
Console.WriteLine($"十六进制字符串(默认):\n{bytes.ToHexString()}");
Console.WriteLine($"十六进制字符串(大写加空格):\n{bytes.ToHexString("{
0:X2} ")}");
Console.WriteLine($"十六进制字符串(小写加空格):\n{bytes.ToHexString("{
0:x2} ")}");
Console.WriteLine($"十六进制代码字符串:\n{bytes.ToHexCodeString()}");
执行结果如下图:
[16进制字符串] 转 [字节数组]
string hex = "AABBCC010203";
var bytes = hex.HexStringToBytes();
引入CodePlus
转换如此简单主要是因为引用的CodePlus提供的扩展方法。
对着项目右键,选择管理NuGet程序包
在搜索栏中输入CodePlus,选择图中的程序包后,选择安装即可。