logo

Numero da binario a decimale in C

Questa sezione discuterà la conversione dei numeri binari in numeri decimali. Prima di arrivare al concetto, dobbiamo comprendere i numeri binari e i numeri decimali. Come sappiamo, il computer non capisce le parole o i numeri che gli esseri umani scrivono o fanno. Invece, comprende solo 0 e 1. Ad esempio, quando digitiamo una parola o un numero su un computer, vari software o compilatori aiutano a convertire questi numeri o parole in forma binaria (0 e 1 bit). In modo che un computer possa capirli facilmente.

testo di avvolgimento css
Numero da binario a decimale in C

Numero binario

Un numero binario è un numero che rappresenta informazioni o dati memorizzati in un computer con una combinazione di bit 0 e 1. È noto anche come sistema numerico in base 2 perché ha due bit, 0 e 1. Questi sono numeri binari (0 e 1) 1001, 1010, 1101, 1111, 1010101 ecc.

Numero decimale

Un numero decimale è un numero che contiene 10 cifre da 0 a 9. La sua base è 10 perché raccoglie 10 cifre (0, 1, 2, 3, 4, 5, 6, 7, 8, 9) e rappresenta o compone il numero intero utilizzando queste dieci cifre.

Algoritmo per convertire il binario in decimale

  1. Prendi un numero binario come input.
  2. Dividi il numero per 10 e memorizza il resto nella variabile rem.
  3. numero_decimale = numero_decimale + rem * base;
    Inizialmente, decimal_num è 0 e la base è 1, dove la variabile rem memorizza il resto del numero.
  4. Dividi il quoziente del numero originale per 10.
  5. Moltiplica la base per 2.
  6. Stampa il decimale del numero binario.

Converti un numero binario in un numero decimale utilizzando il ciclo while

Consideriamo il programma C per convertire la combinazione di un numero binario (0 e 1) nel numero decimale utilizzando un ciclo while.

programma.c

 #include #include void main() { // declaration of variables int num, binary_num, decimal_num = 0, base = 1, rem; printf (' Enter a binary number with the combination of 0s and 1s 
'); scanf (' %d', &num); // accept the binary number (0s and 1s) binary_num = num; // assign the binary number to the binary_num variable while ( num > 0) { rem = num % 10; /* divide the binary number by 10 and store the remainder in rem variable. */ decimal_num = decimal_num + rem * base; num = num / 10; // divide the number with quotient base = base * 2; } printf ( ' The binary number is %d 	', binary_num); // print the binary number printf (' 
 The decimal number is %d 	', decimal_num); // print the decimal getch(); } 

Produzione

 Enter a binary number with the combination of 0s and 1s 1101 The binary number is 1101 The decimal number is 13 

Spiegazioni del codice: Come possiamo vedere nel programma sopra, chiede agli utenti un numero binario (0 e 1) di memorizzare il numero nella variabile num. Ad ogni iterazione, un ciclo while controlla la condizione del numero binario e convalida che il numero fornito non debba essere inferiore a 0; altrimenti esce dal ciclo.

Di seguito è riportata l'iterazione del ciclo while, come segue:

1a iterazione:

rem = 1101 % 10 => 1

decimal_num = 0 + 1 * 1 => 1 (decimal_val = 0, rem = 1 e base = 1)

numero = 1101/10 => 110

base = 1*2 => 2

2a iterazione:

numerare l'alfabeto

rem = 110% 10 => 0

decimal_num = 1 + 0 * 2 => 1 (decimal_val = 1, rem = 0 e base = 2)

numero = 110 / 10 => 11

array di ordinamento in Java

base = 2*2 => 4

3a iterazione:

rem = 11% 10 => 1

decimal_num = 1 + 1 * 4 => 5 (decimal_val = 1, rem = 1 e base = 4)

numero = 11/10 => 1

base = 4*2 => 8

4a iterazione:

metodi in Java

rem = 1% 10 => 1

decimal_num = 5 + 1 * 8 => 1 (decimal_val = 5, rem = 1 e base = 8)

numero = 1/10 => 0

base = 8*2 => 16

Converti il ​​numero binario nel numero decimale usando il ciclo for

Consideriamo un programma in linguaggio C per convertire la combinazione di numeri binari (0 e 1) in numero decimale utilizzando il ciclo for.

decimale.c

 #include #include #include // use math.h header file void main() { // declaration of local variables i, bin_num, decimal_num = 0, rem; int i, bin_num, decimal_num = 0, rem; printf (' Enter the binary number with the combination of 0s and 1s 
'); scanf ('%d', &bin_num); // takes the binary number as the input printf( ' 
 The binary number is %d', bin_num); // print the binary number for (i = 0; bin_num != 0; ++i) { rem = bin_num % 10; bin_num = bin_num / 10; decimal_num = decimal_num + (rem) * ( pow (2, i)); } // print the decimal number printf ('
 Conversion from binary to decimal number is %d', decimal_num); getch(); } 

Produzione

a capo automatico delle parole CSS
 Enter the binary number with the combination of 0s and 1s 10010 The binary number is 10010 Conversion from binary to decimal number is 18 

Converti il ​​numero binario in numero decimale utilizzando la funzione

Consideriamo un programma in linguaggio C per convertire la combinazione di numeri binari (0 e 1) nel numero decimale utilizzando la funzione definita dall'utente.

così

 #include #include int binaryTodecimal(int bin_num); int main() { // declare the local variable int bin_num, dec_num; printf (' Enter the binary number (0s and 1s) 
'); scanf ('%d', &bin_num); dec_num = binaryTodecimal (bin_num); // call the binaryTodecimal() function printf (' Conversion of the binary number to decimal number is %d', dec_num); } // use user defined function --- binaryTo decimal function int binaryTodecimal( int bin_num) { // declaration of variables int decimal_num = 0, temp = 0, rem; while (bin_num != 0) { rem = bin_num % 10; bin_num = bin_num / 10; decimal_num = decimal_num + rem * pow( 2, temp); temp++; } return decimal_num; } 

Produzione

 Enter the binary number (0s and 1s) 11001 Conversion of the binary number to decimal number is 25 

Converti il ​​numero binario in numero decimale utilizzando array e funzione

Consideriamo un programma in linguaggio C per convertire la combinazione di numeri binari (0 e 1) in numero decimale utilizzando funzione e array.

Decimale2.c

 #include #include int binaryTodecimal (char num[]) { int i, deci_num, mul = 0; for ( deci_num = 0, i = str_length(num) - 1; i >= 0; --i, ++mul) { deci_num = deci_num + (num[i] - 48) * (1 << mul); } return deci_num; } int str_length( char str[]) { int i = 0; while (str[i] != '') i++; return i; } int main() { char num[] = '1101'; int deci_num; printf ('
 The binary number is %s', num); printf ('
 The decimal number of %s is %d', num, binaryTodecimal(num)); return 0; } 

Produzione

 The binary number is 1101 The decimal number of 1101 is 13