Autor Tema: Convertir a hexadecimal  (Leído 4334 veces)

0 Usuarios y 1 Visitante están viendo este tema.

Desconectado antoniojdobarro

  • PIC12
  • **
  • Mensajes: 84
Convertir a hexadecimal
« en: 18 de Febrero de 2011, 15:14:36 »
Bien, supongamos que tengo una variable llamada "contador" la cual tiene asignado un determinado valor entre -100 y 100.

Como hago para obtener el valor de  la variable "contador" en hexadecimal.

Desconectado LABmouse

  • Moderadores
  • DsPIC30
  • *****
  • Mensajes: 3575
    • Juntos es mejor
Re: Convertir a hexadecimal
« Respuesta #1 en: 18 de Febrero de 2011, 16:24:50 »
Bueno, primer debemos tener claro que:

Una variable de 8 bits debe ser declarada tipo char.

Usando el modificador unsigned, decimos al compilador que serán almacenados datos sin signo, lo cual nos da 8 bits de datos, es decir... desde 0 hasta 255 ( 0x00 ... 0xFF).

Usando el modificador signed, decimos al compilador que serán almacenados datos con signo, lo cual nos da 7 bits de datos y 1 de signo. El bit sacrificado para el signo es el MSB del byte.  Con lo anterior tenemos que en una variable tipo char que es de 8 bits si se usa el modificador  signed, solo nos deja 1 bit de signo y 7 de datos.

Si quieres ver en hex una variable signed char, pasas el numero decimal a hex como ya sabes y luego colocas el bit MSB en 1 si es negativo o en 0 si es positivo.

SALUDOS!


Desconectado antoniojdobarro

  • PIC12
  • **
  • Mensajes: 84
Re: Convertir a hexadecimal
« Respuesta #2 en: 18 de Febrero de 2011, 16:30:58 »
Bien, la teoría muy bien, pero y la práctica.

Supongamos tenemos la variable "contador" cuyos valores varían entre -100 y 100, como hago para convertir el valor almacenado a hexadecimal, y guardarlo en otra variable?

Desconectado LABmouse

  • Moderadores
  • DsPIC30
  • *****
  • Mensajes: 3575
    • Juntos es mejor
Re: Convertir a hexadecimal
« Respuesta #3 en: 18 de Febrero de 2011, 16:49:41 »
Código: C
  1. signed char variable1=-100;
  2. signed char variable2;
  3.  
  4. void main(void){
  5.  
  6.    variable2=variable1;
  7.  
  8. }

Desconectado antoniojdobarro

  • PIC12
  • **
  • Mensajes: 84
Re: Convertir a hexadecimal
« Respuesta #4 en: 18 de Febrero de 2011, 17:21:19 »
Ummm..

Bien, supongamos que tengo una variable state.X que viene de la captura de la coordenada x de un joystick.

Se que para enviar por puerto com...

 byte[] mBuffer = new byte[1];
 mBuffer[0] = 0x73; //ASCII letra"s".
 serialPort1.Write(mBuffer, 0, mBuffer.Length);


El problema es como envío el valor almacenado en state.X????????????

Desconectado migsantiago

  • Colaborador
  • DsPIC33
  • *****
  • Mensajes: 8257
    • Sitio de MigSantiago
Re: Convertir a hexadecimal
« Respuesta #5 en: 18 de Febrero de 2011, 20:51:20 »
Para convertir una variable debes usar castings.

http://msdn.microsoft.com/en-us/library/ms173105%28v=vs.80%29.aspx