Отправляет email-рассылки с помощью сервиса Sendsay
  Все выпуски  

Первые шаги в программировании: основы, Си, 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



Сейчас произведем перевод двоичного числа в десятичное


1011002 = Считаем по формуле:
1 * 25 + 0 * 24 + 1 * 23 + 1 * 22 + 0 * 21 + 0 * 20
Это эквивалентно записи:
1 * 32 + 0 * 16 + 1 * 8 + 1 * 4 + 0 * 2 + 0 * 1
Это эквивалентно записи:
32 + 8 + 4
В результате перевода получаем:
4410



Возьмем еще один пример:


11112 = Считаем по формуле:
1 * 23 + 1 * 22 + 1 * 21 + 1 * 20
Это эквивалентно записи:
1 * 8 + 1 * 4 + 1 * 2 + 1 * 1
Это эквивалентно записи:
8 + 4 + 2 + 1
В результате перевода получаем:
1510



И еще один:


11002 = Считаем по формуле:
1 * 23 + 1 * 22 + 0 * 21 + 0 * 20
Это эквивалентно записи:
1 * 8 + 1 * 4 + 0 * 2 + 0 * 1
Это эквивалентно записи:
8 + 4 + 0 + 0
В результате перевода получаем:
1210



Полная новость на сайте www.tryobj.com


В избранное