【问题标题】:Convert Hex string to Binary string, displaying all 4 bits of hex value [duplicate]将十六进制字符串转换为二进制字符串,显示所有 4 位十六进制值 [重复]
【发布时间】:2017-03-09 02:10:35
【问题描述】:

我是 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”

【问题讨论】:

  • 为什么要逐个字符而不是Convert.ToString(Convert.ToInt32(hexDataReadFromTag, 16), 2)

标签: c#


【解决方案1】:

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

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

【讨论】:

    猜你喜欢
    • 2018-01-22
    • 2018-01-31
    • 2019-07-27
    • 2013-01-16
    • 1970-01-01
    • 1970-01-01
    • 2012-02-03
    • 2021-10-30
    • 2019-08-23
    相关资源
    最近更新 更多