Первые шаги в программировании: основы, Си, Objective-c
1.9
Перевод целого двоичного числа в другую систему счисления
Перевод целого числа одной системы счисления в другую
Будут рассмотрены:
- перевод двоичного числа в восьмеричное
- перевод двоичного числа в десятичное
- перевод двоичного числа в шестнадцатеричное
Как уже было сказано ранее одним из сложных моментов в системах счисления является перевод одной системы счисления в другую.
Но это только по началу.
Надо запомнить основной принцип преобразования числа в десятичную систему.
Этот принцип можно записать такой формулой:
Возьмем число а в системе счисления Q, где n - количество знаков. a1 - самый младший элемент числа (записывается справа - "это единицы" в десятичной системе счисления) an - самый старший элемент числа (записывается слева)
Тогда формула будет иметь следующий вид:
X = a1 * q0 + a2 * q1 + ... + an * qn
Помните, что любое число в нулевой степени дает единицу:
например 50 = 1
Итак, произведем перевод двоичного числа в восьмеричное
Для перевода двоичного числа в восьмеричное необходимо сперва разделить двоичное число на блоки по три двоичные цифры.
После этого каждый блок перевести в восьмеричное значение.
В результате получится восьмеричное число.
Например, двоичное число 0111 1011, разбитое на группы по три двоичные цифры, можно записать как 01 111 011 и затем после записи каждой группы одной восьмеричной цифрой получить восьмеричное число 173.
01 111 0112 переводим в восьмеричную систему
1-й блок:
01
Это эквивалентно записи: 0 * 21 + 0 * 20
В результате перевода получаем:
1
Это эквивалентно записи: 0 * 2 + 0 * 1
Это эквивалентно записи: 0 + 1
2-й блок:
111
Это эквивалентно записи: 1 * 22 + 1 * 21 + 1 * 20
В результате перевода получаем:
7
Это эквивалентно записи: 1 * 4 + 1 * 2 + 1 * 1
Это эквивалентно записи: 4 + 2 + 1
3-й блок:
011
Это эквивалентно записи: 0 * 22 + 1 * 21 + 1 * 20
В результате перевода получаем:
3
Это эквивалентно записи: 0 * 4 + 1 * 2 + 1 * 1
Это эквивалентно записи: 0 + 2 + 1
В результате получаем значение 1738
Сейчас произведем перевод двоичного числа в десятичное