CCorsi

Come convertire un numero decimale in binario in C

I dati possono essere rappresentati in differenti modi ad esempio il cinque nel sistema numerico romano è V, nel sistema decimale è 5, nel sistema binario 101 e così via. Una delle cose che ci rende maggiormente curiosi è quello di essere a conoscenza di come poter convertire da un sistema numerico all’altro!

Il sistema numerico decimale è composto da dieci cifre (0,1,2,3,4,5,6,7,8,9) mentre quello binario è composto da solo due cifre (0,1). La tabella sottostante è una comparazione dei valori numeri nelle due differenti basi numeriche prese in considerazione nel corrente articolo:

DECIMALEBINARIO
00
11
210
311
4100
5101
6110
7111
81000
91001
101010
111011
121100
131101
141110
151111
1610000

CONVERSIONE MANUALE

Per poter comprendere perfettamente la logica da applicare al nostro programma in C è necessario comprendere anzitempo il calcolo manuale. Come poter quindi convertire un numero da decimale a binario?

Supponiamo di dover convertire il numero 10. Data che la base di conversione è due dovremmo dividere il numero da convertire per la base ovvero 10/2, successivamente bisogna ripetere il processo con il risultato fino al momento in cui il risultato è maggiore di 0. Gli step da seguire sono i seguenti:

STEPDIVIDENDORISULTATORESTO
11050
2521
3210
4101

A questo punto non resta altro che prendere il resto delle varie divisioni ed invertire l’ordine in cui sono state ottenute, nel nostro caso 0101 invertito è 1010. Questo valore ottenuto è il nostro 10 in base binaria!

CALCOLO AUTOMATIZZATO

Nel nostro esempio, successivamente all’inclusione delle librerie e alla dichiarazione delle variabili, chiederemo all’utente di inserire il numero in formato decimale che salveremo all’interno della variabile “numeroDecimale”.

Successivamente effettueremo un ciclo da eseguire fino a quando il valore inserito nella variabile “numeroDecimale” sarà maggiore di 0. Per poter diminuire il valore “numeroDecimale” divideremo volta per volta la variabile per 2 e salveremo il risultato all’interno della variabile stessa mentre salveremo il resto della divisione volta per volta all’interno dell’array “numeroBinario”.

Termineremo quindi con la stampa dell’array!

#include<stdio.h>    
#include<stdlib.h> 

 
int main(){  
	
	int numeroBinario[100],numeroDecimale,i;    
	system ("cls");  
	printf("Inserire il numero da convertire: ");    

	scanf("%d",&numeroDecimale);    
	for(i=0;numeroDecimale>0;i++)    
	{    
		numeroBinario[i]=numeroDecimale%2;    
		numeroDecimale=numeroDecimale/2;    
	}    
	printf("\nIl numero in formato binario e': ");    
	for(i=i-1;i>=0;i--)    
	{    
		printf("%d",numeroBinario[i]);    
	} 
}  

LINK UTILI

Pagina Instagram: https://www.instagram.com/developer_sumo/
Corso C: https://www.developersumo.com/c/
I nostri Corsi: https://www.developersumo.com/corsi/

What's your reaction?

Excited
0
Happy
1
In Love
0
Not Sure
0
Silly
0

You may also like

More in:C

Leave a reply

Il tuo indirizzo email non sarà pubblicato. I campi obbligatori sono contrassegnati *