成都网站建设优化推广,怎么看别人网站是哪里做的,深圳建网站制作维护,建设一个网站的工作方案C#二进制字符串与字节数组互相转换 文章目录 C#二进制字符串与字节数组互相转换前言示例代码实现思路扩展方法说明引用CodePlus库结束语 前言
开发中有时需要将二进制数据转换为字符串或相反。虽然.NET提供了一些用于二进制数据操作的类库#xff0c;但是它们的使用有时候会比…
C#二进制字符串与字节数组互相转换 文章目录 C#二进制字符串与字节数组互相转换前言示例代码实现思路扩展方法说明引用CodePlus库结束语 前言
开发中有时需要将二进制数据转换为字符串或相反。虽然.NET提供了一些用于二进制数据操作的类库但是它们的使用有时候会比较繁琐。STTech.CodePlus是一个.NET扩展库它提供了很多实用的扩展方法可以帮助我们更方便地进行二进制数据操作。 在本文中我们将介绍如何使用STTech.CodePlus扩展库实现二进制字符串和字节数组的快速互相转换。
示例代码
// 用于测试的字节数组
byte[] bytes new byte[] { 0x01, 0x11, 0x21, 0xF2, 0xF3, 0xAA, 0xAB, 0xAC, 0xAD, };// 将字节数组转换为二进制字符串
string binaryString bytes.Select(b Convert.ToString(b, 2).PadLeft(8,0)).Join();// 将二进制字符串还原为字节数组
byte[] bytes2 binaryString.Slice(8).Select(arr Convert.ToByte(arr, 2)).ToArray();// 输出转换结果
Console.WriteLine(${binaryString}\r\n{bytes2.ToHexCodeString()}\r\n{bytes2.ToHexString()});执行结果如下图 实现思路
我们首先定义了一个字节数组bytes然后通过LINQ表达式将其转换为一个二进制字符串binaryString。这里我们使用了Select扩展方法和Convert.ToString方法将每个字节转换为8位的二进制字符串并使用PadLeft方法在左侧填充0使得每个二进制字符串的长度都是8位。接着我们使用Join扩展方法将所有二进制字符串连接成一个字符串。这里我们没有指定分隔符因此默认使用空字符串。
接下来我们使用Slice扩展方法将二进制字符串按照等尺寸这里是8位进行分片然后使用Select和Convert.ToByte方法将每个二进制字符串转换为一个字节最后使用ToArray方法将所有字节组成一个新的字节数组 bytes2。最后我们使用ToHexCodeString和ToHexString扩展方法将字节数组 bytes2 转换为16进制代码格式的字符串和16进制格式的字符串并输出转换结果。
扩展方法说明
在上述示例代码中我们使用了STTech.CodePlus扩展库中的四个扩展方法
Slice方法用于将字符串等分为指定大小的子串并返回一个字符串列表Join方法用于将字符串列表中的所有字符串连接成一个新的字符串可以指定分隔符ToHexCodeString方法用于将字节数组转换为16进制代码格式的字符串ToHexString方法用于将字节数组转换为16进制格式的字符串。 引用CodePlus库
想要使用STTech.CodePlus扩展库可以通过Nuget搜索STTech.CodePlus并安装。
也可参考此文章末尾处有图文说明 C# 字符串转Base64图片、音频等各种文件万物皆可转Base64 - CodePlus系列
结束语
STTech.CodePlus扩展库提供了一些实用的扩展方法可以帮助我们更方便地进行二进制数据操作。如果在开发中需要进行二进制数据的转换操作不妨尝试使用STTech.CodePlus扩展库相信会为您的开发工作带来很大的便利。 最后如果您觉得本文对您有所帮助请不要吝啬您的点赞和评论提供宝贵的反馈和建议让更多的读者受益。