• Martes 12 de Mayo de 2026, 06:33

Mostrar Mensajes

Esta sección te permite ver todos los posts escritos por este usuario. Ten en cuenta que sólo puedes ver los posts escritos en zonas a las que tienes acceso en este momento.


Mensajes - paultool

Páginas: [1]
1
C# / Representacion ASCII del valor Hexadecimal 0x00
« en: Miércoles 17 de Febrero de 2010, 06:21 »
Buenas noches amigos,

Tengo el siguiente problema, necesito enviar por un socket una cadena de caracteres la cual es de longuitud variable, para enviarla al host es necesario anteceder la
con 2 bytes hexadecimales en su represantacion ASCII que indican la longuitud de la cadena.

En el siguiente ejemplo la longuitud de la cadena es de 10 caracteres, convirtiendo esto en hexadecimal para formar los 2 bytes de la longuitud obtengo

0x00 en el primer byte
0x0A para el segundo byte

obteniendo el caracter que representa el valor hexadecimal de los bytes obtengo:

  para el primer byte
n    para el segundo byte

la cadena final obtenida es

n23456789

el problema aqui se encuentra al tratar de obtener el caracter que representa al primer byte 0x00, me arroja como resultado el caracter '' si esta cadena la observo desde un editor hexadecimal se ve de la siguiente forma

5C 30 0A 30 31 32 33 34 35 36 37 38 39

lo que busco obtener es

00 0A 30 31 32 33 34 35 36 37 38 39


en su representacion ascii pero c# no me genera el caracter ascci del valor hexadecimal 0x00, si alguien puede ayudarme a obtener la represEntacion ascii del valor hexadecimal 0x00 se los agradecere de antemano


ejemplo:

Código: C#
  1.  
  2. string PostilionMsg="0123456789"
  3.  
  4. //SE OBTIENE LA LONGUITUD DEL MENSAJE EN HEXADECIMAL
  5.  
  6. string PostilionMsgLh = PostilionMsg.Length.ToString("X");
  7. PostilionMsgLh = PostilionMsgLh.PadLeft(4, '0');
  8.  
  9. //CONVIERTE EL VALOR HEXADECIMAL A CARACTER ASCCI
  10.  
  11. byte newByte1 = byte.Parse(PostilionMsgLh.Substring(0, 2), System.Globalization.NumberStyles.HexNumber);
  12. byte newByte2 = byte.Parse(PostilionMsgLh.Substring(2, 2), System.Globalization.NumberStyles.HexNumber);
  13. char b1 = Convert.ToChar(@System.Convert.ToInt32(newByte2.ToString()));
  14. char b2 = Convert.ToChar(@System.Convert.ToInt32(newByte1.ToString()));
  15.  
  16. PostilionMsg= b1+""+b3+PostilionMsg
  17.  
  18.  
  19.  

Páginas: [1]