У цьому розділі буде обговорено перетворення двійкових чисел у десяткові. Перш ніж перейти до концепції, нам потрібно зрозуміти двійкові числа та десяткові числа. Як ми знаємо, комп’ютер не розуміє слів чи цифр, які пишуть або роблять люди. Натомість він розуміє лише 0 і 1. Наприклад, коли ми вводимо слово чи число на комп’ютері, різноманітне програмне забезпечення чи компілятори допомагають перетворити ці числа чи слова в двійкову форму (біт 0 і 1). Щоб комп’ютерна машина могла легко це зрозуміти.
загальна помилка захисту
Двійкове число
Двійкове число — це число, яке представляє інформацію або дані, що зберігаються в комп’ютері, за допомогою комбінації бітів 0s і 1s. Вона також відома як система числення з основою 2, оскільки має два біти, 0 і 1. Це двійкові числа (0 і 1) 1001, 1010, 1101, 1111, 1010101 і т.д.
Десяткове число
Десяткове число — це число, яке містить 10 цифр від 0 до 9. Його основа — 10, оскільки воно складається з 10 цифр (0, 1, 2, 3, 4, 5, 6, 7, 8, 9) і представляє або створює ціле число, використовуючи ці десять цифр.
Алгоритм перетворення двійкової системи в десяткову
- В якості вхідних даних візьміть двійкове число.
- Розділіть число на 10 і збережіть залишок у змінній rem.
- decimal_num = десяткове_число + rem * base;
Спочатку decimal_num дорівнює 0, а основа — 1, де змінна rem зберігає залишок числа. - Розділіть частку вихідного числа на 10.
- Помножте основу на 2.
- Виведіть десятковий дріб двійкового числа.
Перетворіть двійкове число в десяткове за допомогою циклу while
Давайте розглянемо програму C для перетворення комбінації двійкового числа (0 і 1) у десяткове число за допомогою циклу 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-100
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
основа = 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-та ітерація:
rem = 1 % 10 => 1
char + int у java
decimal_num = 5 + 1 * 8 => 1 (decimal_valu = 5, rem = 1, & base = 8)
кількість = 1/10 => 0
основа = 8 * 2 => 16
Перетворіть двійкове число в десяткове за допомогою циклу for
Розглянемо програму мовою C для перетворення комбінації двійкових чисел (0 і 1) у десяткове число за допомогою циклу for.
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(); }
Вихід
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 для перетворення комбінації двійкових чисел (0 і 1) у десяткове число за допомогою функції, визначеної користувачем.
так 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 для перетворення комбінації двійкових чисел (0 і 1) у десяткове число за допомогою функції та масиву.
скільки мільйонів в мільярді
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