Pregunta

¿Cómo construyo una cadena de secuencia de escape en notación hexadecimal?

Ejemplo:

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

Quiero poder crear cadenas con valores hexadecimales entre 00 y FF como este (en este ejemplo 1B)

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

Quizás haya otra forma de hacer cadenas hexadecimales ...

¿Fue útil?

Solución

No almacena valores hexadecimales en cadenas.

Puede, pero sería solo eso, una cadena, y tendría que convertirse en un entero o un byte para leer realmente su valor.

Puede asignar un valor hexadecimal como literal a un int o un byte:

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

Entonces, es fácilmente posible pasar un literal hexadecimal a su cadena:

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

Lo que crearía esta cadena " 126 prueba hexadecimal " ;.

¿Pero no creo que eso sea lo que querías?

Otros consejos

Intente evitar la secuencia de escape \ x . Es difícil de leer porque donde se detiene depende de los datos. Por ejemplo, ¿cuánta diferencia hay de un vistazo entre estas dos cadenas?

"\x9Good compiler"
"\x9Bad compiler"

En el primero, el " \ x9 " es tab: la secuencia de escape se detiene allí porque 'G' no es un carácter hexadecimal válido. En la segunda cadena, " \ x9Bad " es toda una secuencia de escape, dejándote con algún carácter aleatorio de Unicode y " compilador " ;.

Te sugiero que uses la secuencia de escape \ u en su lugar:

"\u0009Good compiler"
"\u0009Bad compiler"

(Por supuesto, para la pestaña usaría \ t pero espero que vea lo que quiero decir ...)

Esto es algo aparte de la pregunta original, por supuesto, pero ya ha sido respondida :)

Hay un código de escape '\ u' para códigos hexadecimales 16 bits de caracteres unicode.

Console.WriteLine( "Look, I'm so happy : \u263A" );
Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top