logo

Двоично към десетично число в C

Този раздел ще обсъди преобразуването на двоични числа в десетични числа. Преди да преминем към концепцията, трябва да разберем двоичните числа и десетичните числа. Както знаем, компютърът не разбира думите или цифрите, които хората пишат или правят. Вместо това разбира само 0 и 1. Например, когато въвеждаме дума или число на компютър, различни софтуери или компилатори помагат за преобразуването на тези числа или думи в двоична форма (битове 0s и 1s). Така че една компютърна машина може лесно да ги разбере.

указатели в c
Двоично към десетично число в C

Двоично число

Двоично число е число, което представлява информация или данни, съхранени в компютър с комбинация от 0s и 1s битове. Известна е още като бройна система с основа 2, защото има два бита, 0s и 1s. Това са двоични числа (0 и 1) 1001, 1010, 1101, 1111, 1010101 и т.н.

Десетично число

Десетичното число е число, което съдържа 10 цифри от 0 до 9. Основата му е 10, защото събира 10 цифри (0, 1, 2, 3, 4, 5, 6, 7, 8, 9) и представлява или прави цяло число, използвайки тези десет цифри.

Алгоритъм за преобразуване на двоична в десетична система

  1. Вземете двоично число като вход.
  2. Разделете числото на 10 и запазете остатъка в променлива rem.
  3. decimal_num = десетичен_num + rem * база;
    Първоначално decimal_num е 0, а основата е 1, където променливата rem съхранява остатъка от числото.
  4. Разделете частното на първоначалното число на 10.
  5. Умножете основата по 2.
  6. Отпечатайте десетичната запетая на двоичното число.

Преобразувайте двоично число в десетично с помощта на цикъла while

Нека разгледаме програмата C за преобразуване на комбинацията от двоично число (0s и 1s) в десетично число с помощта на цикъл while.

програма.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(); } 

Изход

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

Обяснения на кода: Както можем да видим в горната програма, тя иска двоично число (0 и 1) от потребителите, за да съхрани числото в променливата num. При всяка итерация цикълът while проверява условието за двоично число и потвърждава, че даденото число не трябва да е по-малко от 0; в противен случай излиза от цикъла.

Следват итерациите на цикъла while, както следва:

1-ва итерация:

rem = 1101 % 10 => 1

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

брой = 1101 / 10 => 110

основа = 1 * 2 => 2

2-ро повторение:

номериране на азбуката

rem = 110 % 10 => 0

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

число = 110 / 10 => 11

конвертиране на char в int java

основа = 2 * 2 => 4

3-то повторение:

rem = 11 % 10 => 1

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

число = 11 / 10 => 1

основа = 4 * 2 => 8

4-то повторение:

java за разделяне на низове

rem = 1 % 10 => 1

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

число = 1/10 => 0

основа = 8 * 2 => 16

Преобразувайте двоично число в десетично число с помощта на цикъл for

Нека разгледаме програма на език C за преобразуване на комбинацията от двоично число (0s и 1s) в десетично число с помощта на цикъл for.

десетичен.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(); } 

Изход

string.compareto c#
 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 

Преобразувайте двоично число в десетично число с помощта на функция

Нека разгледаме програма на език C за преобразуване на комбинация от двоично число (0s и 1s) в десетично число с помощта на дефинирана от потребителя функция.

така че 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; } 

Изход

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

Преобразувайте двоично число в десетично число с помощта на масив и функция

Нека разгледаме програма на език C за преобразуване на комбинацията от двоично число (0s и 1s) в десетично число с помощта на функция и масив.

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

Изход

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