TODOPIC

Lenguajes de programación para PC => C, C#, C++ => Mensaje iniciado por: antoniojdobarro en 18 de Febrero de 2011, 15:14:36

Título: Convertir a hexadecimal
Publicado por: antoniojdobarro 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.
Título: Re: Convertir a hexadecimal
Publicado por: LABmouse 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!

Título: Re: Convertir a hexadecimal
Publicado por: antoniojdobarro 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?
Título: Re: Convertir a hexadecimal
Publicado por: LABmouse 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. }
Título: Re: Convertir a hexadecimal
Publicado por: antoniojdobarro 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????????????
Título: Re: Convertir a hexadecimal
Publicado por: migsantiago 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