如何以十六进制表示法构建转义序列字符串。
例子:
string s = "\x1A"; // this will create the hex-value 1A or dec-value 26
我希望能够像这样构建具有 00 到 FF 之间的十六进制值的字符串(在本例中为 1B)
string s = "\x" + "1B"; // Unrecognized escape sequence
也许还有另一种制作十六进制字符串的方法......
请尽量避免\x
转义序列。它很难阅读,因为它停止在哪里取决于数据。例如,这两个字符串一眼看去有多大区别?
"\x9Good compiler"
"\x9Bad compiler"
在前者中,“\x9”是制表符——转义序列在此处停止,因为“G”不是有效的十六进制字符。在第二个字符串中,“\x9Bad”都是一个转义序列,给您留下一些随机的 Unicode 字符和“编译器”。
我建议您改用 \u 转义序列:
"\u0009Good compiler"
"\u0009Bad compiler"
(当然对于你会使用的标签,\t
但我希望你明白我的意思......)
当然,这与最初的问题有些不同,但已经回答了:)
您不会将十六进制值存储在字符串中。
你可以,但它只是一个字符串,并且必须转换为整数或字节才能实际读取其值。
您可以将十六进制值作为文字分配给 int 或字节:
Byte value = 0x0FF;
int value = 0x1B;
因此,很容易将十六进制文字传递到您的字符串中:
string foo = String.Format("{0} hex test", 0x0BB);
这将创建这个字符串“126 hex test”。
但我不认为这就是你想要的?
十六进制16 位unicode 字符代码有一个 '\u' 转义码。
Console.WriteLine( "Look, I'm so happy : \u263A" );