开放的编程资料库

当前位置:我爱分享网 > C#教程 > 正文

C#字节数组转十六进制字符串

在本文中,我们展示了如何将字节数组转换为十六进制字符串。

byte类型是C#中的一种简单的数字值类型。当处理文件和网络连接时,byte类型主要用于IO操作。

十六进制是一种以16为底数的编号系统。它使用16个唯一的字母数字符号:数字0到9和字母A-F来表示值10到15。

十六进制系统简化了二进制值的表示,因为它们缩短了位数;一位十六进制数相当于四位二进制数。

Encoding.ASCII.GetBytes方法将ASCII字符串转换为字节数组。

十六进制格式说明符

十六进制格式说明符X或x将数字转换为十六进制数字的字符串。字符串可以是大写或小写。

我们还可以添加一个精度说明符,该说明符指示结果字符串中所需的最小数字位数。如果需要,数字的左边用零填充以产生精度说明符给定的位数。

int n = 2350;

Console.WriteLine(n.ToString("X"));
Console.WriteLine(n.ToString("x"));
Console.WriteLine(n.ToString("X2"));
Console.WriteLine(n.ToString("X4"));
Console.WriteLine(n.ToString("X8"));

程序使用各种十六进制格式说明符将整数打印成十六进制值。

$ dotnet run
92E
92e
92E
092E
0000092E

下一个示例将字符串转换为字节数组,然后将数组转换为十六进制字符串。

using System.Text;

string msg = "an old falcon";
byte[] data = Encoding.ASCII.GetBytes(msg);

string hex = string.Join(" ", data.Select(x => x.ToString("X2")));
Console.WriteLine(hex);

程序使用了string.Join方法,LINQSelect方法和ToString方法。

$ dotnet run 
61 6E 20 6F 6C 64 20 66 61 6C 63 6F 6E

C#Convert.ToHexString

Convert.ToHexString方法将一个8位无符号整数数组转换为使用大写十六进制字符编码的等效字符串表示形式。

using System.Text;

string msg = "an old falcon";
byte[] data = Encoding.ASCII.GetBytes(msg);

string hex = Convert.ToHexString(data);
Console.WriteLine(hex);

该程序使用Convert.ToHexString将字节数组转换为十六进制字符串。

$ dotnet run
616E206F6C642066616C636F6E

C#BitConverter.ToString

BitConverter.ToString方法将指定字节数组的每个元素的数值转换为其等效的十六进制字符串表示形式。

十六进制对由连字符分隔。

using System.Text;

string msg = "an old falcon";
byte[] data = Encoding.ASCII.GetBytes(msg);

string hex = BitConverter.ToString(data);
Console.WriteLine(hex);

string hex2 = hex.Replace('-', ' ');
Console.WriteLine(hex2);

该程序使用BitConverter.ToString将字节数组转换为十六进制字符串。我们还使用Replace删除了连字符。

$ dotnet run
61-6E-20-6F-6C-64-20-66-61-6C-63-6F-6E
61 6E 20 6F 6C 64 20 66 61 6C 63 6F 6E

C#二进制文件转十六进制字符串

File.ReadAllBytes打开一个二进制文件,将文件内容读入字节数组,然后关闭文件。

var path = "favicon.ico";
byte[] data = File.ReadAllBytes(path);

int i = 0;

foreach (byte c in data)
{
    Console.Write("{0:X2} ", c);
    i++;

    if (i % 10 == 0)
    {
        Console.WriteLine();
    }
}

该示例读取一个favicon.ico二进制文件。数据以十六进制格式打印到控制台。

$ dotnet run
00 00 01 00 01 00 10 10 00 00
00 00 00 00 68 05 00 00 16 00
00 00 28 00 00 00 10 00 00 00
20 00 00 00 01 00 08 00 00 00
00 00 00 01 00 00 00 00 00 00
00 00 00 00 00 01 00 00 00 00
00 00 00 00 00 00 FF FF FF 00
4D 45 3D 00 00 00 00 00 00 00
...

在本文中,我们展示了如何将字节数组转换为十六进制字符串。

列出所有C#教程。

未经允许不得转载:我爱分享网 » C#字节数组转十六进制字符串

感觉很棒!可以赞赏支持我哟~

赞(0) 打赏