TODOPIC
Microcontroladores PIC => Lenguaje C para microcontroladores PIC => Mensaje iniciado 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
-
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.
-
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...

-
gracias a los dos por las respuestas son de gran ayuda..
hqv