TODOPIC

Microcontroladores PIC => Lenguaje C para microcontroladores PIC => Mensaje iniciado por: hqv en 27 de Octubre de 2005, 23:47:00

Título: pregunta sobre variables sin signo
Publicado por: hqv en 27 de Octubre de 2005, 23:47:00
hola amigos:

tengo el siguiente problema:

defino una variable sin signo y le asigno el valor 0xB0 y luego a esa variable le realizo un & con 0xff,

y el resultado que me entrega es -80 y yo espero el B0 es decir el mismo valor.

unsigned y=0xb0;
y= (y & 0xff);
printf("y=%d",y);

y es y=-80

otra consulta es sobre :

shift_left...solo mueve bytes o se puede mover bits???
 gracias

hqv
Título: RE: pregunta sobre variables sin signo
Publicado por: El_Coach en 28 de Octubre de 2005, 02:51:00
Lo de la variable te sale -80 porque estas haciendo el printf con %d y con eso interpretas el dato como un entero con signo.
Tienes que poner %X para que te salga B0 , o %u para que salga su valor entero sin signo correspondiente. Sonrisa
Título: RE: pregunta sobre variables sin signo
Publicado por: MGLSOFT en 28 de Octubre de 2005, 13:06:00
Shift_Left() desplaza todo el byte, pero si quieres obtener el estado de un bit solamente te conviene Bit_test(), que es mejor que rotarlo y luego hacerle un and contra una mascara...Sonrisa GiganteSonrisa Gigante
Título: RE: pregunta sobre variables sin signo
Publicado por: hqv en 28 de Octubre de 2005, 21:18:00
gracias a los dos por las respuestas son de gran ayuda..

hqv