logo

Binárne na desatinné číslo v C

Táto časť sa bude zaoberať prevodom binárnych čísel na desiatkové čísla. Predtým, ako prejdeme k tomuto konceptu, musíme pochopiť binárne čísla a desatinné čísla. Ako vieme, počítač nerozumie slovám alebo číslam, ktoré ľudia píšu alebo robia. Namiesto toho chápe iba 0 a 1. Napríklad, keď napíšeme slovo alebo číslo na počítači, rôzne softvéry alebo kompilátory pomáhajú previesť tieto čísla alebo slová do binárnej formy (bity 0s a 1s). Aby to počítačový stroj mohol ľahko pochopiť.

stránky ako coomeet
Binárne na desatinné číslo v C

Binárne číslo

Binárne číslo je číslo, ktoré predstavuje informácie alebo dáta uložené v počítači s kombináciou bitov 0s a 1s. Je tiež známy ako základný 2 číselný systém, pretože má dva bity, 0s a 1s. Sú to binárne čísla (0 a 1) 1001, 1010, 1101, 1111, 1010101 atď.

Desatinné číslo

Desatinné číslo je číslo, ktoré obsahuje 10 číslic od 0 do 9. Jeho základom je 10, pretože zhromažďuje 10 číslic (0, 1, 2, 3, 4, 5, 6, 7, 8, 9) a predstavuje alebo vytvára celé číslo pomocou týchto desiatich číslic.

Algoritmus na konverziu dvojkovej sústavy na desiatkovú

  1. Ako vstup vezmite binárne číslo.
  2. Vydeľte číslo 10 a zvyšok uložte do premennej rem.
  3. desiatkové_číslo = desiatkové_číslo + rem * základ;
    Na začiatku je decimal_num 0 a základ je 1, kde premenná rem ukladá zvyšok čísla.
  4. Podiel pôvodného čísla vydeľte 10.
  5. Vynásobte základ 2.
  6. Vytlačte desatinné číslo binárneho čísla.

Preveďte binárne číslo na desiatkové číslo pomocou cyklu while

Uvažujme program C na konverziu kombinácie binárneho čísla (0s a 1s) na desiatkové číslo pomocou cyklu while.

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

Výkon

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

Vysvetlenia kódu: Ako môžeme vidieť vo vyššie uvedenom programe, žiada od užívateľov binárne číslo (0s a 1s), aby číslo uložilo do premennej num. Pri každej iterácii cyklus while skontroluje podmienku binárneho čísla a potvrdí, že dané číslo by nemalo byť menšie ako 0; v opačnom prípade opustí slučku.

Nasledujú iterácie cyklu while takto:

1. iterácia:

rem = 1101 % 10 => 1

desiatkové_číslo = 0 + 1 * 1 => 1 (desiatkové_číslo = 0, rem = 1 a základ = 1)

číslo = 1101/10 => 110

základ = 1 * 2 => 2

2. iterácia:

java int v reťazci

rem = 110 % 10 => 0

desiatkové_číslo = 1 + 0 * 2 => 1 (desiatkové_číslo = 1, rem = 0 a základ = 2)

číslo = 110/10 => 11

poznámky pod čiarou

základ = 2 * 2 => 4

3. iterácia:

rem = 11 % 10 => 1

desiatkové_číslo = 1 + 1 * 4 => 5 (desiatkové_číslo = 1, rem = 1 a základ = 4)

číslo = 11/10 => 1

základ = 4 * 2 => 8

4. iterácia:

triedenie v zozname v jave

rem = 1 % 10 => 1

desiatkové_číslo = 5 + 1 * 8 => 1 (desiatkové_číslo = 5, rem = 1 a základ = 8)

číslo = 1/10 => 0

základ = 8 * 2 => 16

Preveďte binárne číslo na desiatkové číslo pomocou cyklu for

Uvažujme program v jazyku C na konverziu kombinácie binárneho čísla (0s a 1s) na desiatkové číslo pomocou cyklu for.

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

Výkon

typy testovania softvéru
 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 

Preveďte binárne číslo na desiatkové číslo pomocou funkcie

Uvažujme program v jazyku C na konverziu kombinácie binárnych čísel (0s a 1s) na desiatkové číslo pomocou funkcie definovanej používateľom.

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

Výkon

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

Preveďte binárne číslo na desiatkové číslo pomocou poľa a funkcie

Uvažujme program v jazyku C na prevod kombinácie binárneho čísla (0s a 1s) na desiatkové číslo pomocou funkcie a poľa.

Desatinné 2.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; } 

Výkon

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