2008-11-12 49 views
12

如何建立十六进制符号的转义序列字符串。C#建立十六进制符号字符串

例子:

string s = "\x1A"; // this will create the hex-value 1A or dec-value 26 

我希望能够到00之间建立与十六进制值的字符串到FF像这样(在这个例子1B)

string s = "\x" + "1B"; // Unrecognized escape sequence 

也许有做的另一种方式十六进制字符串...

+0

我不认为我理解 - 在这个例子中,你想要一个单一的字符与ANSI Code 26? – Grzenio 2008-11-12 14:37:06

+0

\ x和\ u都是unicode字符的转义序列。 ``\ u03A9'`和`'\ x03A9'`都在控制台输出上打印omaga(`Ω`)符号。 – RBT 2016-10-15 02:05:57

回答

19

您不会在字符串中存储十六进制值。

你可以,但它只是一个字符串,必须转换为整数或字节才能真正读取其值。

您可以将十六进制值作为文字分配给int或虽然字节:

Byte value = 0x0FF; 
int value = 0x1B; 

因此,它容易地将文字输入16进制的方式传递到字符串:

string foo = String.Format("{0} hex test", 0x0BB); 

哪会创建这个字符串“126十六进制测试”。

但我不认为这就是你想要的?

3

有一个用于十六进制的'\ u'转义码16位 unicode字符代码。

Console.WriteLine("Look, I'm so happy : \u263A"); 
29

请尽量避免\x转义序列。这很难阅读,因为停止的地方取决于数据。例如,这两个字符串之间有什么区别?

"\x9Good compiler" 
"\x9Bad compiler" 

在前者中,“\ X9”是选项卡 - 转义序列停在那里,因为“G”不是一个有效的十六进制字符。在第二个字符串中,“\ x9Bad”都是一个转义序列,留下一些随机的Unicode字符和“编译器”。

我建议你使用\ u转义序列代替:

"\u0009Good compiler" 
"\u0009Bad compiler" 

(课程选项卡中,你会使用\t但我希望你明白我的意思...)

这是当然有一些原始问题,但已被回答:)