logo

Liczba binarna na dziesiętną w C

W tej sekcji omówiono konwersję liczb binarnych na liczby dziesiętne. Zanim przejdziemy do koncepcji, musimy zrozumieć liczby binarne i liczby dziesiętne. Jak wiemy, komputer nie rozumie słów ani liczb, które ludzie piszą lub robią. Zamiast tego rozumie tylko 0 i 1. Na przykład, gdy wpisujemy słowo lub liczbę na komputerze, różne programy lub kompilatory pomagają przekonwertować te liczby lub słowa na postać binarną (bity zer i jedynek). Aby maszyna komputerowa mogła je łatwo zrozumieć.

klasa vs obiekt Java
Liczba binarna na dziesiętną w C

Liczba binarna

Liczba binarna to liczba reprezentująca informacje lub dane przechowywane w komputerze za pomocą kombinacji bitów 0 i 1. Jest on również nazywany systemem liczbowym o podstawie 2, ponieważ składa się z dwóch bitów, zer i jedynek. Są to liczby binarne (0 i 1) 1001, 1010, 1101, 1111, 1010101 itd.

Liczba dziesiętna

Liczba dziesiętna to liczba zawierająca 10 cyfr od 0 do 9. Jej podstawa wynosi 10, ponieważ zawiera 10 cyfr (0, 1, 2, 3, 4, 5, 6, 7, 8, 9) i reprezentuje lub tworzy liczbę całkowitą za pomocą tych dziesięciu cyfr.

Algorytm konwersji systemu binarnego na dziesiętny

  1. Jako dane wejściowe weź liczbę binarną.
  2. Podziel liczbę przez 10 i zapisz resztę w zmiennej rem.
  3. decimal_num = decimal_num + rem * podstawa;
    Początkowo liczba_dziesiętna wynosi 0, a podstawa wynosi 1, gdzie zmienna rem przechowuje pozostałą część liczby.
  4. Podziel iloraz pierwotnej liczby przez 10.
  5. Pomnóż podstawę przez 2.
  6. Wydrukuj dziesiętną liczbę binarną.

Konwertuj liczbę binarną na liczbę dziesiętną za pomocą pętli while

Rozważmy program w języku C konwertujący kombinację liczby binarnej (0 i 1) na liczbę dziesiętną za pomocą pętli 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(); } 

Wyjście

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

Objaśnienia kodu: Jak widać w powyższym programie, prosi on użytkowników o zapisanie liczby binarnej (0 i 1) w zmiennej num. Przy każdej iteracji pętla while sprawdza warunek liczby binarnej i sprawdza, czy podana liczba nie powinna być mniejsza niż 0; w przeciwnym razie wychodzi z pętli.

Poniżej przedstawiono iteracje pętli while w następujący sposób:

Pierwsza iteracja:

rem = 1101% 10 => 1

10 ml na uncje

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

liczba = 1101 / 10 => 110

podstawa = 1 * 2 => 2

2. iteracja:

rem = 110% 10 => 0

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

liczba = 110 / 10 => 11

podstawa = 2 * 2 => 4

aktorka Zeenat Aman

3. iteracja:

rem = 11% 10 => 1

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

liczba = 11 / 10 => 1

podstawa = 4 * 2 => 8

czwarta iteracja:

rem = 1% 10 => 1

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

liczba = 1 / 10 => 0

zeenat aman aktor

podstawa = 8 * 2 => 16

Zamień liczbę binarną na liczbę dziesiętną za pomocą pętli for

Rozważmy program w języku C, który konwertuje kombinację liczb binarnych (0 i 1) na liczbę dziesiętną za pomocą pętli for.

rodzajowość w Javie

dziesiętny.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(); } 

Wyjście

 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 

Konwertuj liczbę binarną na liczbę dziesiętną za pomocą funkcji

Rozważmy program w języku C, który konwertuje kombinację liczb binarnych (0 i 1) na liczbę dziesiętną przy użyciu funkcji zdefiniowanej przez użytkownika.

tak

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

Wyjście

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

Konwertuj liczbę binarną na liczbę dziesiętną za pomocą tablicy i funkcji

Rozważmy program w języku C, który konwertuje kombinację liczb binarnych (0 i 1) na liczbę dziesiętną za pomocą funkcji i tablicy.

Dziesiętny2.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; } 

Wyjście

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