PDA

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:

wisher
14-01-2006, 08:40
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

andbin
14-01-2006, 11:11
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

wisher
14-01-2006, 11:16
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 ;)




:)