C seqüência de notação hexadecimal # Desenvolver
Pergunta
Como faço para construir uma seqüência de escape em notação hexadecimal.
Exemplo:
string s = "\x1A"; // this will create the hex-value 1A or dec-value 26
Eu quero ser capaz de construir strings com valores hexadecimais entre 00 a FF assim (neste exemplo 1B)
string s = "\x" + "1B"; // Unrecognized escape sequence
Talvez haja outra maneira de fazer hexadecimal cordas ...
Solução
Você não armazenar valores hexadecimais em cordas.
Você pode, mas seria apenas isso, uma corda, e teria que ser convertido para um inteiro ou um byte para realmente ler o seu valor.
Você pode atribuir um valor hexadecimal como um literal para um int ou um byte no entanto:
Byte value = 0x0FF;
int value = 0x1B;
Assim, sua facilmente possível passar um literal hexadecimal em sua string:
string foo = String.Format("{0} hex test", 0x0BB);
Qual seria criar esta string "126 teste hex".
Mas eu não acho que é isso que você queria?
Outras dicas
Por favor, tente evitar a seqüência \x
fuga. É difícil de ler porque onde ele pára depende dos dados. Por exemplo, quanto é a diferença de relance entre estas duas cordas?
"\x9Good compiler"
"\x9Bad compiler"
No primeiro caso, o "\ x9" é guia - a seqüência de escape pára por aí, porque 'G' não é um caractere hexadecimal válido. Na segunda corda, "\ x9Bad" é ??tudo sequência de uma fuga, deixando-o com alguns caracteres Unicode aleatório e "compilador".
Eu sugiro que você use a seqüência de escape \ u em vez disso:
"\u0009Good compiler"
"\u0009Bad compiler"
(É claro que para guia você usaria \t
mas eu espero que você veja o que quero dizer ...)
Este é um pouco além da pergunta original, é claro, mas que tem sido já respondeu:)
Há um '\ u' código de escape para hexadecimal 16 bits códigos de caracteres Unicode.
Console.WriteLine( "Look, I'm so happy : \u263A" );