C# 构建十六进制表示法字符串
声明:本页面是StackOverFlow热门问题的中英对照翻译,遵循CC BY-SA 4.0协议,如果您需要使用它,必须同样遵循CC BY-SA许可,注明原文地址和作者信息,同时你必须将它归于原作者(不是我):StackOverFlow
原文地址: http://stackoverflow.com/questions/284093/
Warning: these are provided under cc-by-sa 4.0 license. You are free to use/share it, But you must attribute it to the original authors (not me):
StackOverFlow
C# Build hexadecimal notation string
提问by humcfc
How do I build an escape sequence string in hexadecimal notation.
如何以十六进制表示法构建转义序列字符串。
Example:
例子:
string s = "\x1A"; // this will create the hex-value 1A or dec-value 26
I want to be able to build strings with hex-values between 00 to FF like this (in this example 1B)
我希望能够像这样构建十六进制值在 00 到 FF 之间的字符串(在本例中为 1B)
string s = "\x" + "1B"; // Unrecognized escape sequence
Maybe there's another way of making hexadecimal strings...
也许还有另一种制作十六进制字符串的方法......
采纳答案by FlySwat
You don't store hexadecimal values in strings.
您不在字符串中存储十六进制值。
You can, but it would just be that, a string, and would have to be cast to an integer or a byte to actually read its value.
您可以,但它只是一个字符串,并且必须转换为整数或字节才能实际读取其值。
You can assign a hexadecimal value as a literal to an int or a byte though:
您可以将十六进制值作为文字分配给 int 或字节:
Byte value = 0x0FF;
int value = 0x1B;
So, its easily possible to pass an hexadecimal literal into your string:
因此,很容易将十六进制文字传递到您的字符串中:
string foo = String.Format("{0} hex test", 0x0BB);
Which would create this string "126 hex test".
这将创建此字符串“126 hex test”。
But I don't think that's what you wanted?
但我不认为那是你想要的吗?
回答by Nicolas Repiquet
There's an '\u' escape code for hexadecimal 16 bitsunicode character codes.
十六进制16 位unicode 字符代码有一个 '\u' 转义码。
Console.WriteLine( "Look, I'm so happy : \u263A" );
回答by Jon Skeet
Please try to avoid the \x
escape sequence. It's difficult to read because where it stops depends on the data. For instance, how much difference is there at a glance between these two strings?
请尽量避免\x
转义序列。它很难阅读,因为它在哪里停止取决于数据。比如,这两个字符串乍一看有多大区别?
"\x9Good compiler"
"\x9Bad compiler"
In the former, the "\x9" is tab - the escape sequence stops there because 'G' is not a valid hex character. In the second string, "\x9Bad" is all an escape sequence, leaving you with some random Unicode character and " compiler".
在前者中,“\x9”是制表符 - 转义序列在那里停止,因为 'G' 不是有效的十六进制字符。在第二个字符串中,“\x9Bad”都是一个转义序列,留下一些随机的 Unicode 字符和“编译器”。
I suggest you use the \u escape sequence instead:
我建议您改用 \u 转义序列:
"\u0009Good compiler"
"\u0009Bad compiler"
(Of course for tab you'd use \t
but I hope you see what I mean...)
(当然对于你会使用的标签,\t
但我希望你明白我的意思......)
This is somewhat aside from the original question of course, but that's been answered already :)
这当然与最初的问题有点不同,但这已经得到了回答:)