TODOPIC
Microcontroladores PIC => Lenguaje C para microcontroladores PIC => Mensaje iniciado por: mrmy en 16 de Febrero de 2012, 13:06:44
-
Saludos a todos.
Quiero imprimir un entero de 32 bits en binario pero al simularlo en proteus me imprime su numero correcto en decimal pero en binario no.
Aqui el codigo
#if defined(__PCM__)
#include <16F877.h> // DISPOSITIVO A PROGRAMAR
#include <2416.c> // Librería para el manejo de la EEPROM 24LC16B
#fuses XT, NOWDT, NOPUT, NOPROTECT, NOBROWNOUT, NOLVP, NOCPD, NOWRT
/////////////////declaracion de variables y configuracion///////////////////////
#use delay(clock=4000000) // XTAL OSCILADOR EXRTERNO 4MHZ
#use rs232(baud=9600,parity=N,xmit=PIN_C6,rcv=PIN_C7,bits=8)
#include <string.h>
int32 vari,f0;
int i,j,aux;
void main(void)
{
f0=0b11111111111111111111111111111111;
vari=f0;
printf("%lu\r",f0);
for(i=0;i<=31;i++)
{
aux=shift_left(&vari,1,0);
printf("%d",aux);
}
}
En decimal me sale: 4294967295
Y en binario : 11111111000000000000000000000000
-
No sería aux=shift_left(&vari,4,0); ?
-
Si funciono. :-/
Pero porque 4 y no 1, si quiero pasar bit por bit pienso que deberia ser 1.
-
tambien puedes usar ((vari>>i)&1)
-
Si funciono. :-/
Pero porque 4 y no 1, si quiero pasar bit por bit pienso que deberia ser 1.
Porque ese parámetro (Hay que leer el Help) indica la cantidad de bytes que compone la variable.
Saludos!
-
Gracias por tu ayuda.
Como puedo poner este tema como solucionado?
-
Editando el mensaje. Modificando el asunto del mismo.
-
Gracias por todos por la ayuda. ((:-))