C#十六进制到字符串的问题
本文关键字:问题 字符串 十六进制 | 更新日期: 2023-09-27 18:20:10
i用CSharp语言制作程序。但是,我有一个大问题。我正在制作一个程序,通过十六进制读取文件,并将十六进制转换为字符串。但是,我不能把绳子弄得很好。蓝色的是一个十六进制代码,我想把它转换成字符串。这是十六进制代码。。。
但我只能得到59fd50a62fb9a8ef,不包括文件扩展名。
我想得到像59fd50a62f9a8ef.bmp 这样的完美字符串
我该怎么办?
这是一个将十六进制转换为字符串的源代码。
string toString(string hexString)
{
var bytes = new byte[hexString.Length / 2];
for (var i = 0; i < bytes.Length; i++)
{
bytes[i] = Convert.ToByte(hexString.Substring(i * 2, 2), 16);
}
return Encoding.Unicode.GetString(bytes);
}
您无法从突出显示的字节中获取文件扩展名。据我所知,它们包含一个十六进制文件名(您已经成功提取了该文件名)、一个字符串结尾字符(两个零)、位图的开头(BM
)和位图的长度(以小端序表示的36 10 00 00
)。因此,要获得文件名,只需将.bmp
附加到十六进制字符串中即可。
但是,如果图像并不总是位图,那么您应该创建一个函数,从字符串结束后的字节推断文件类型。