Det här avsnittet kommer att diskutera omvandlingen av binära tal till decimaltal. Innan vi går till konceptet måste vi förstå binära tal och decimaltal. Som vi vet förstår inte datorn de ord eller siffror som människor skriver eller gör. Istället förstår den bara 0:or och 1:or. Till exempel, när vi skriver ett ord eller nummer på en dator hjälper olika program eller kompilatorer till att konvertera dessa tal eller ord till binär form (0s och 1s bitar). Så att en datormaskin lätt kan förstå dessa.
java iterate karta
Binärt tal
Ett binärt tal är ett tal som representerar information eller data lagrad i en dator med en kombination av 0s och 1s bitar. Det är också känt som bas 2-siffersystemet eftersom det har två bitar, 0:or och 1:or. Dessa är binära tal (0 och 1) 1001, 1010, 1101, 1111, 1010101 etc.
Decimal nummer
Ett decimaltal är ett tal som innehåller 10 siffror från 0 till 9. Dess bas är 10 eftersom det samlar 10 siffror (0, 1, 2, 3, 4, 5, 6, 7, 8, 9) och representerar eller gör heltal med dessa tio siffror.
Algoritm för att konvertera binär till decimal
- Ta ett binärt tal som indata.
- Dividera talet med 10 och lagra resten i variabel rem.
- decimaltal = decimaltal + rem * bas;
Inledningsvis är decimaltalet 0, och basen är 1, där rem-variabeln lagrar resten av talet. - Dividera kvoten av det ursprungliga talet med 10.
- Multiplicera basen med 2.
- Skriv ut decimalen för det binära talet.
Konvertera binärt tal till ett decimaltal med while-loop
Låt oss betrakta C-programmet för att konvertera kombinationen av ett binärt tal (0s och 1s) till decimaltalet med hjälp av en while-loop.
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(); }
Produktion
Enter a binary number with the combination of 0s and 1s 1101 The binary number is 1101 The decimal number is 13
Förklaringar av koden: Som vi kan se i programmet ovan, ber det ett binärt tal (0:or och 1:or) från användarna att lagra numret i variabeln num. Vid varje iteration kontrollerar en while-loop det binära talvillkoret och validerar att det givna numret inte ska vara mindre än 0; annars går den ur slingan.
Följande är iterationen av while-slingan, enligt följande:
1:a iterationen:
datorarbete
rem = 1101 % 10 => 1
decimaltal = 0 + 1 * 1 => 1 (decimalvärde = 0, rem = 1, & bas = 1)
num = 1101 / 10 => 110
bas = 1 * 2 => 2
2:a iterationen:
rem = 110 % 10 => 0
avgränsare java
decimaltal = 1 + 0 * 2 => 1 (decimalvärde = 1, rem = 0, & bas = 2)
num = 110 / 10 => 11
bas = 2 * 2 => 4
3:e iterationen:
rem = 11 % 10 => 1
decimaltal = 1 + 1 * 4 => 5 (decimalvärde = 1, rem = 1, & bas = 4)
num = 11 / 10 => 1
bas = 4 * 2 => 8
4:e iterationen:
rem = 1 % 10 => 1
java-kodning if else-sats
decimaltal = 5 + 1 * 8 => 1 (decimalvärde = 5, rem = 1, & bas = 8)
num = 1 / 10 => 0
bas = 8 * 2 => 16
Konvertera binärt tal till decimaltal med för loop
Låt oss överväga ett program på C-språket för att konvertera kombinationen av binärt tal (0:or och 1:or) till decimaltalet med för loop.
decimal.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(); }
Produktion
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
Konvertera binärt tal till decimaltal med hjälp av funktion
Låt oss överväga ett program på C-språket för att konvertera kombinationen av binärt tal (0s och 1s) till decimaltalet med hjälp av användardefinierad funktion.
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; }
Produktion
Enter the binary number (0s and 1s) 11001 Conversion of the binary number to decimal number is 25
Konvertera binärt tal till decimaltal med hjälp av array och funktion
Låt oss överväga ett program på C-språk för att omvandla kombinationen av binärt tal (0s och 1s) till decimaltalet med hjälp av funktion och array.
1 av 1000,00
Decimal2.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; }
Produktion
The binary number is 1101 The decimal number of 1101 is 13