|
|
|
![]() |
|
Strumenti |
![]() |
#1 |
Junior Member
Iscritto dal: May 2011
Messaggi: 17
|
[C]conversione di un intero da base 10 a base 2
Salve ragazzi, devo fare questo esercizio per l'esame:
Codice:
Scrivere due function C di conversione di un intero positivo (int) da base 10 a base 2 mediante l'algoritmo delle divisioni successive realizzato rispettivamente: 1. usando gli operatori quoziente e resto della divisione intera; 2. usando gli operatori bitwise Codice:
#include <stdio.h> #include <stdlib.h> #include <math.h> #define BIT 16 void divisioni_successive (unsigned int, unsigned char[]); void main () { unsigned int x; unsigned char bit[BIT]; int k; for (k=0;k<BIT;k++) bit[k]=0; k=0; printf("Inserire il numero intero da convertire in binario: "); scanf("%d",&x); divisioni_successive (x, bit[BIT]); puts("Ecco il risultato:\n"); printf("dec=%d in binario="); for(k=0;k<BIT;k++) (k%4 == 0) ? printf(" %1u",bit[k]): printf("%1u",bit[k]); fflush(stdin); getchar();} void divisioni_successive (unsigned int n, unsigned char bit[BIT]) { int k=0,j; do { bit[k++]=n%2; n=n/2; }while (n>0); for (j=k;j<16;j++) bit[j]=0; } Consigli? grazie in anticipo |
![]() |
![]() |
![]() |
#2 |
Senior Member
Iscritto dal: Nov 2005
Città: Texas
Messaggi: 1722
|
Non capisco come sia riuscito a compilarlo. Qui stai passando un solo carattere alla funzione divisioni_successive() mentre si aspetta un array...
__________________
In God we trust; all others bring data |
![]() |
![]() |
![]() |
#3 |
Junior Member
Iscritto dal: May 2011
Messaggi: 17
|
|
![]() |
![]() |
![]() |
#4 | |
Senior Member
Iscritto dal: May 2009
Messaggi: 1408
|
Quote:
Codice:
divisioni_successive (x, bit); poi magari mi sbaglio. ![]() Ciao ![]()
__________________
PC: Carbide 400r, Corsair TX650M, FX8320, CM 412s, Gigabyte 970-UD3, G.skill Ares 2x4GB, Crucial M500 120GB, Seagate 7200.14 2TB, Seagate 7200.12 750GB, Gigabyte GTX570. Windows 10 Pro Notebook: Dell Latitude E7450, i5-5300U, SSD 256Gb, 8GB. Windows 10 Pro LG G3 Ultima modifica di cirano994 : 26-05-2011 alle 19:32. |
|
![]() |
![]() |
![]() |
Strumenti | |
|
|
Tutti gli orari sono GMT +1. Ora sono le: 18:32.