logo

Binært til desimaltall i C

Denne delen vil diskutere konvertering av binære tall til desimaltall. Før vi går til konseptet, må vi forstå binære tall og desimaltall. Som vi vet forstår ikke datamaskinen ordene eller tallene som mennesker skriver eller gjør. I stedet forstår den bare 0-er og 1-ere. For eksempel, når vi skriver inn et ord eller tall på en datamaskin, hjelper ulike programmer eller kompilatorer med å konvertere disse tallene eller ordene til binær form (0s og 1s bit). Slik at en datamaskin lett kan forstå disse.

Det er
Binært til desimaltall i C

Binært tall

Et binært tall er et tall som representerer informasjon eller data som er lagret i en datamaskin med en kombinasjon av 0s og 1s bits. Det er også kjent som base 2-tallsystemet fordi det har to biter, 0-er og 1-er. Dette er binære tall (0 og 1) 1001, 1010, 1101, 1111, 1010101 osv.

Desimaltall

Et desimaltall er et tall som inneholder 10 sifre fra 0 til 9. Grunnlaget er 10 fordi det samler 10 sifre (0, 1, 2, 3, 4, 5, 6, 7, 8, 9) og representerer eller lager hele tall ved å bruke disse ti sifrene.

Algoritme for å konvertere binær til desimal

  1. Ta et binært tall som inngang.
  2. Del tallet med 10 og lagre resten i variabel rem.
  3. desimaltall = desimaltall + rem * grunntall;
    Til å begynne med er desimaltallet 0, og grunntallet er 1, hvor rem-variabelen lagrer resten av tallet.
  4. Del kvotienten til det opprinnelige tallet med 10.
  5. Multipliser grunntallet med 2.
  6. Skriv ut desimalen til det binære tallet.

Konverter binært tall til et desimaltall ved hjelp av while-løkke

La oss vurdere C-programmet for å konvertere kombinasjonen av et binært tall (0s og 1s) til desimaltallet ved hjelp av en while-løkke.

program.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(); } 

Produksjon

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

Forklaringer av koden: Som vi kan se i programmet ovenfor, ber det et binært tall (0s og 1s) fra brukerne om å lagre tallet i variabelen num. Ved hver iterasjon sjekker en while-løkke den binære tallbetingelsen og validerer at det gitte tallet ikke skal være mindre enn 0; ellers går den ut av løkken.

Følgende er iterasjonen av while-løkken, som følger:

1. iterasjon:

rem = 1101 % 10 => 1

desimaltall = 0 + 1 * 1 => 1 (desimaltall = 0, rem = 1, & grunntall = 1)

hvordan gjøre om i photoshop

num = 1101 / 10 => 110

base = 1 * 2 => 2

2. iterasjon:

rem = 110 % 10 => 0

desimaltall = 1 + 0 * 2 => 1 (desimaltall = 1, rem = 0, & grunntall = 2)

num = 110 / 10 => 11

base = 2 * 2 => 4

3. iterasjon:

rem = 11 % 10 => 1

desimaltall = 1 + 1 * 4 => 5 (desimaltall = 1, rem = 1, & grunntall = 4)

git status -s

num = 11 / 10 => 1

python // operatør

base = 4 * 2 => 8

4. iterasjon:

rem = 1 % 10 => 1

desimaltall = 5 + 1 * 8 => 1 (desimaltall = 5, rem = 1, & grunntall = 8)

num = 1 / 10 => 0

base = 8 * 2 => 16

Konverter binært tall til desimaltall ved å bruke for loop

La oss vurdere et program på C-språk for å konvertere kombinasjonen av binært tall (0s og 1s) til desimaltallet ved å bruke for loop.

desimal.c

log4j
 #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(); } 

Produksjon

 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 

Konverter binært tall til desimaltall ved hjelp av funksjon

La oss vurdere et program på C-språk for å konvertere kombinasjonen av binært tall (0s og 1s) til desimaltallet ved hjelp av brukerdefinert funksjon.

så c

 #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; } 

Produksjon

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

Konverter binært tall til desimaltall ved hjelp av matrise og funksjon

La oss vurdere et program på C-språket for å konvertere kombinasjonen av binært tall (0s og 1s) til desimaltallet ved hjelp av funksjon og matrise.

Desimal2.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; } 

Produksjon

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