Conversione decimale in binario.
Un metodo utilizza solo variabili senza alcun operatore booleano, è più costoso in termine di programmazione e di esecuzione ma .... funziona.
Il secondo utilizza un intero come se fosse uno stack e gli operatori booleani permettono di calcoli bit a bit
Un metodo utilizza solo variabili senza alcun operatore booleano, è più costoso in termine di programmazione e di esecuzione ma .... funziona.
Il secondo utilizza un intero come se fosse uno stack e gli operatori booleani permettono di calcoli bit a bit
PHP Code:
#include <st***.h>int main (void){
/* n è il numero originale,norig è una copia di n, a conta il numero di divisioni di n per 2 in andata,i conta le divisioni di n in ritorno
*conoscendo a,k è un incremento associato a i per dividere n tot volte diviso 2 in ritorno.*/
int n,norig,a,i,k;
i=0;
printf("Dare un numero intero positivo\n");
scanf("%d",&n);
while (n<=0){
printf("Dare un numero intero positivo\n");
scanf("%d",&n);
}
norig=n;
/* inizio calcolo ultimo resto in andata in a */
while (n!=0){
a=n%2;
n/=2;
i++;
}
/* fine calcolo ultimo resto in andata in a */
printf("%d",a);
i--; // ultimo resto già stampato quindi tolgo una divisione
while(i!=0){
n=norig;
k=0;
while(k!=(i-1)){ // il resto è uguale al modulo del dividendo per il divisore, il dividendo è un ordine più grande e quindi i-1
k++;
n/=2;
}
a=n%2;
printf("%d",a);
i--;
}
printf("\n");
return 0;
}
PHP Code:
#include <st***.h>int main (void){
unsigned int a=0;
unsigned int b=0;
int n,r,i,k;
printf("Dare un numero intero positivo\n");
scanf("%d",&n);
while (n<=0){
printf("Dare un numero intero positivo\n");
scanf("%d",&n);
}
i=0;
while(n!=0){
a<<=1;
i++;
r=n%2;
n/=2;
a|=r;
}
k=0;
while(k<i){
k=k+1;
b=a&1;
printf("%d",b);
a>>=1;
}
printf("\n");
return 0;
}