创建8字节字符数组

时间:2018-04-11 10:13:03

标签: c#

有时我会得到一个值“0001”,有时候会得到“10001000”。我尝试使用如下代码将其转换为字符数组:

var array = ConvertToBinary(0x128.toString(“X”).ToCharArray();

然后我就这样使用它:

x[6] = value[6];

我的问题发生在我得到“0001”时,因为索引不会达到6.所以我得到索引超出范围异常。这是我的ConverToBinary函数:

private static string ConvertToBinary(string hexString)
{
    return String.Join(String.Empty, hexString.Select(
        c => Convert.ToString(Convert.ToInt32(c.ToString(), 16), 2).PadLeft(4, '0')
        )
    );
}

如果我将.PadLeft(4,'0')改为.PadLeft(8,'0')而我的值=“10001000”而不是8字节,我得到16个字节

1 个答案:

答案 0 :(得分:1)

您的十六进制转换已关闭。它会分别考虑每个字符,为15提供F,为1515提供FF

将十六进制字符串整体转换为:

private static string ConvertToBinary(string hexString)
{
    return Convert.ToString(Convert.ToInt32(hexString, 16), 2).PadLeft(8, '0');
}