在C#中将十六进制字符串转换为普通字符串

耶苏达斯·摩西

我从某处获取此代码以将十六进制字符串转换为普通字符串。但是我不明白这一点。有人可以解释一下吗?在此字符串中,第一行从字符串中每隔两个字符将其转换为字节。但是,我不明白为什么他们只将数组分配给字节数组的一半长度?

有时也会出错,例如,如果Inputstring的长度为350,字节的长度为175,char的长度为87.5,并且char数组仅分配给87,那不足以容纳字节数组中的所有字符。

public static string HextoString(string InputText)
{

    byte[] bb = Enumerable.Range(0, InputText.Length)
                 .Where(x => x % 2 == 0)
                 .Select(x => Convert.ToByte(InputText.Substring(x, 2), 16))
                 .ToArray();
   //return Convert.ToBase64String(bb);
    char[] chars = new char[bb.Length / sizeof(char)];
    System.Buffer.BlockCopy(bb, 0, chars, 0, bb.Length);
    return new string(chars);
}
塔雷克

这是因为.Where(x => x % 2 == 0)仅将输入字符串过滤为仅具有偶数索引的那些值,因此输出将具有原始值的一半。

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

在Windows Phone Runtime C#中将字符串十六进制转换为颜色

如何在C中将字符串转换为十六进制值

在C ++中将十六进制字符串转换为无符号字符

将十六进制转换为字符串

在C ++中将HWND转换为十六进制字符串

将十六进制字符串转换为QByteArray

如何在C中将字符串转换为十六进制,反之亦然?

将具有特殊字符的字符串转换为十六进制-C#

在C中将20字节的十六进制(字符字符串)转换为10字节的二进制字符字符串

在C#中将十六进制字符串转换为Number?

C#转换为Python中的十六进制字符串表示法

如何在Kusto中将十六进制字符串转换为Ascii字符串

将BGRA 8位十六进制字符串转换为C#颜色

如何在Kotlin中将十六进制字符串转换为dec字符串?

将十六进制数字转换为字符串

在python中将字符串转换为十六进制

将int转换为十六进制字符串

c#将字符串十六进制转换为ascii吗?从csv文件读取字符串

如何从十六进制字符串转换为普通字符串?

Python:字符串转换为十六进制文字

在arduino中将十六进制字符串转换为十进制

将字符串转换为十六进制字符

如何在 C# 中将十六进制字符串值转换为 byte[]

在 C# 中将十六进制字符串转换为字节数组

将十六进制转换为字符串

如何在 C++ 中将十六进制转换为十进制字符串?

在 C# 中将 HierarchyId 转换为十六进制字符串,获取用于 CSV 导出的原始(“表示”)值

在 SCSS 中将十六进制字符串转换为十六进制颜色值

如何在 KOTLIN 中将十六进制字符串转换为 ASCII 字符串