Šiame skyriuje bus aptartas dvejetainių skaičių konvertavimas į dešimtainius skaičius. Prieš pereidami prie koncepcijos, turime suprasti dvejetainius skaičius ir dešimtainius skaičius. Kaip žinome, kompiuteris nesupranta žodžių ar skaičių, kuriuos žmonės rašo ar daro. Vietoj to, jis supranta tik 0 ir 1. Pavyzdžiui, kai įvedame žodį ar skaičių kompiuteryje, įvairi programinė įranga arba kompiliatoriai padeda konvertuoti šiuos skaičius ar žodžius į dvejetainę formą (0s ir 1s bitai). Kad kompiuterinė mašina galėtų lengvai tai suprasti.
klausytis uosto
Dvejetainis skaičius
Dvejetainis skaičius yra skaičius, nurodantis informaciją arba duomenis, saugomus kompiuteryje su 0 ir 1 bitų deriniu. Ji taip pat žinoma kaip bazinė 2 skaičių sistema, nes ji turi du bitus, 0 ir 1. Tai dvejetainiai skaičiai (0 ir 1) 1001, 1010, 1101, 1111, 1010101 ir kt.
Dešimtainis skaičius
Dešimtainis skaičius yra skaičius, kurį sudaro 10 skaitmenų nuo 0 iki 9. Jo pagrindas yra 10, nes jis renka 10 skaitmenų (0, 1, 2, 3, 4, 5, 6, 7, 8, 9) ir reiškia arba sudaro sveikasis skaičius naudojant šiuos dešimt skaitmenų.
Algoritmas konvertuoti dvejetainį į dešimtainį
- Paimkite dvejetainį skaičių kaip įvestį.
- Padalinkite skaičių iš 10, o likusią dalį įrašykite į kintamąjį rem.
- dešimtainis_skaičius = dešimtainis_skaičius + rem * bazė;
Iš pradžių dešimtainis_skaičius yra 0, o bazė yra 1, kur rem kintamasis saugo likusią skaičiaus dalį. - Padalinkite pradinio skaičiaus dalinį iš 10.
- Padauginkite bazę iš 2.
- Išspausdinkite dvejetainio skaičiaus dešimtainį skaičių.
Konvertuokite dvejetainį skaičių į dešimtainį skaičių naudodami while kilpą
Apsvarstykite, kaip programa C dvejetainio skaičiaus (0 ir 1) derinį konvertuoja į dešimtainį skaičių, naudojant while kilpą.
programa.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(); }
Išvestis
Enter a binary number with the combination of 0s and 1s 1101 The binary number is 1101 The decimal number is 13
Kodo paaiškinimai: Kaip matome aukščiau pateiktoje programoje, ji prašo vartotojų dvejetainio skaičiaus (0 ir 1), kad įrašytų skaičių į kintamąjį num. Kiekvienoje iteracijoje while ciklas patikrina dvejetainio skaičiaus sąlygą ir patvirtina, kad nurodytas skaičius neturi būti mažesnis nei 0; kitu atveju jis išeina iš ciklo.
Toliau pateikiamas while ciklo iteravimas:
1 iteracija:
rem = 1101 % 10 => 1
dešimtainis_skaičius = 0 + 1 * 1 => 1 (dešimtainis_valis = 0, rem = 1 ir bazė = 1)
skaičius = 1101 / 10 => 110
bazė = 1 * 2 => 2
string.format java string
2 iteracija:
rem = 110 % 10 => 0
dešimtainis_skaičius = 1 + 0 * 2 => 1 (dešimtainis_valis = 1, atstumas = 0 ir bazė = 2)
skaičius = 110 / 10 => 11
bazė = 2 * 2 => 4
3 iteracija:
Išankstinis medžio apvažiavimo užsakymas
rem = 11 % 10 => 1
dešimtainis_skaičius = 1 + 1 * 4 => 5 (dešimtainis_valis = 1, atstumas = 1 ir bazė = 4)
skaičius = 11 / 10 => 1
bazė = 4 * 2 => 8
suskaidytas java
4 iteracija:
rem = 1 % 10 => 1
dešimtainis_skaičius = 5 + 1 * 8 => 1 (dešimtainis_valis = 5, atstumas = 1 ir bazė = 8)
skaičius = 1 / 10 => 0
bazė = 8 * 2 => 16
Konvertuokite dvejetainį skaičių į dešimtainį skaičių naudodami for kilpą
Panagrinėkime programą C kalba, kuri dvejetainio skaičiaus (0 ir 1) derinį konvertuoja į dešimtainį skaičių naudojant for kilpą.
dešimtainis.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(); }
Išvestis
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
Konvertuokite dvejetainį skaičių į dešimtainį skaičių naudodami funkciją
Panagrinėkime programą C kalba, kuri dvejetainio skaičiaus (0 ir 1) derinį konvertuoja į dešimtainį skaičių, naudojant vartotojo apibrėžtą funkciją.
taigi 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; }
Išvestis
kaip sugalvojo mokyklą
Enter the binary number (0s and 1s) 11001 Conversion of the binary number to decimal number is 25
Konvertuokite dvejetainį skaičių į dešimtainį skaičių naudodami masyvą ir funkciją
Panagrinėkime programą C kalba, kuri dvejetainio skaičiaus (0 ir 1) derinį konvertuoja į dešimtainį skaičių naudojant funkciją ir masyvą.
Dešimtainis2.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; }
Išvestis
The binary number is 1101 The decimal number of 1101 is 13