将十六进制字符串转换为二进制字符串,显示所有4位十六进制值

本文关键字:字符串 十六进制 显示 4位 二进制 转换 | 更新日期: 2023-09-27 18:15:09

我是c#新手。请帮我解决下面的问题

我试图将十六进制字符串转换为具有1和0的二进制字符串。我尝试了下面的方法。我在这里面临的问题是,如果十六进制值为0,转换只是0而不是"0000"。我希望二进制字符串包含十六进制值的所有4位。

const string hexDataReadFromTag= "FF001"  
foreach (char c in hexDataReadFromTag.ToCharArray())
            {
                binaryData.Append(Convert.ToString(Convert.ToInt32(c.ToString(), 16), 2));
}

得到的输出是"11111111001"而不是"11111111000000000001"

将十六进制字符串转换为二进制字符串,显示所有4位十六进制值

使用.PadLeft(4, '0')确保每个十六进制数字转换为4位二进制数字(3转换为0011而不是11):

Convert.ToString(Convert.ToInt32(c.ToString(), 16), 2).PadLeft(4, '0')