0

我正在尝试制作一个字典来从二进制转换为十六进制,这就是我所做的:

private Dictionary<string, char> binaryCharacterTohex = new Dictionary<string, char>
        {
            {'0000', "0"},
            {'0001', "1"},
            {'0010', "2"},
            {'0011', "3"},
            {'0100', "4"},
            {'0101', "5"},
            {'0110', "6"},
            {'0111', "7"},
            {'1000', "8"},
            {'1001', "9"},
            {'1010', "a"},
            {'1011', "b"},
            {'1100', "c"},
            {'1101', "d"},
            {'1110', "e"},
            {'1111', "f"}
        };

但它总是在我放在那里的每个二进制字符串值('XXXX')上给我“错误的编译常量值”,任何人都可以帮助我吗?

4

4 回答 4

2

C#中使用单引号表示字符,双引号表示字符串。你现在把它们倒过来了。将它们全部关闭,它应该可以工作,如下所示:

private Dictionary<string, char> binaryCharacterTohex = new Dictionary<string, char>
{
    {"0000", '0'},
    {"0001", '1'},
    {"0010", '2'},
    {"0011", '3'},
    {"0100", '4'},
    {"0101", '5'},
    {"0110", '6'},
    {"0111", '7'},
    {"1000", '8'},
    {"1001", '9'},
    {"1010", 'a'},
    {"1011", 'b'},
    {"1100", 'c'},
    {"1101", 'd'},
    {"1110", 'e'},
    {"1111", 'f'}
};
于 2013-08-27T16:42:41.513 回答
1

'.'创建一个字符文字。
字符只能是单个字符。

你想要一个带双引号的字符串文字。

于 2013-08-27T16:42:01.800 回答
1

你倒置stringchar引用。

' '定义 a char, " "astring

您需要替换 {'0000', "0"},{"0000", '0'},

于 2013-08-27T16:43:41.943 回答
1

双引号:""用于包裹字符串。单引号:''用于字符。您的编译器错误意味着您在代码中将它们倒退了。你需要让你的代码看起来像这样:

private Dictionary<string, char> binaryCharacterTohex = new Dictionary<string, char>
        {
            {"0000", '0'},
            {"0001", '1'},
            //and so on
        };
于 2013-08-27T16:45:59.020 回答