View Full Version : [C,C++] Conversione da decimale a binario
maulattu
14-01-2006, 08:02
ciao gente...
qualcuno di voi sa se esiste una qualche funzione bella che pronta in C/C++ per convertire da decimale in binario (e viceversa) oppure me la devo scrivere io a mano (non che sia difficile... :D )? :sofico:
se ti interessa solo l'output puoi usare
printf("%b",numero)
e il programma ti stampa un numero decimale in binario.
nella realtà la conversione è inutile in quanto un pc ha nella memoria i numeri sempre in binario e poi effettua le operazioni di conversione in per fare l'output
Purtroppo non è molto chiaro quale è l'obiettivo di maulattu, cioè se ottenere una stringa con la rappresentazione binaria di un numero oppure qualcos'altro.
se ti interessa solo l'output puoi usare
printf("%b",numero)
e il programma ti stampa un numero decimale in binario.
Non so dove l'hai trovato il %b ma non è affatto standard. Sicuramente non è standard ANSI. Su Linux sono sicuro che non funziona e su Windows penso neanche (ho visto la documentazione del mio VC++ e non risulta esserci un %b per la printf, anche se non ho provato). Se hai qualche compilatore che ha una printf che supporta il %b facci sapere magari. ;)
Se l'intenzione di maulattu è quella di ottenere una stringa con il valore in binario, si può fare così:
#include <stdio.h>
#define LEN_BINSTR_INT (sizeof (int)*8)
char *binstr_int (char *bufout, int value)
{
unsigned int m;
char *ret = bufout;
for (m=1<<(LEN_BINSTR_INT-1); m!=0; m>>=1)
*bufout++ = value & m ? '1' : '0';
*bufout = '\0';
return ret;
}
int main (void)
{
char str[LEN_BINSTR_INT+1];
printf ("%s\n", binstr_int (str, 619030885));
return 0;
}
Ciao.
maulattu
14-01-2006, 11:14
se ti interessa solo l'output puoi usare
printf("%b",numero)
e il programma ti stampa un numero decimale in binario
sarà, ma a me scrive %b a video :mbe: :mbe: :mbe:
#include <stdio.h>
#include <stdlib.h>
int main() {
printf("%b ciao\n",121);
return 0;
}
risultato:
mau@laptop:~/workspace/provaCpp$ ./binar
%b ciao
scusatemi, pensavo esistesse e non ho controllato :stordita:
maulattu
14-01-2006, 11:19
Non so dove l'hai trovato il %b ma non è affatto standard. Sicuramente non è standard ANSI. Su Linux sono sicuro che non funziona
infatti... :read:
ottenere una stringa con la rappresentazione binaria di un numero indovinato :D
maulattu
14-01-2006, 11:20
grazie a tutti ;)
:)
vBulletin® v3.6.4, Copyright ©2000-2025, Jelsoft Enterprises Ltd.