Краткое пособие по переводу между системами счисления с основаниями 2, 8, 10, 16
Термины
NS (СС) — Numeral System (Система Счисления)
Перевод из десятичной NS в двоичную
Существует два способа перевести из десятичной NS в двоичную. Далее будут разобраны оба алгоритма.
Алгоритм №1
Мы можем перевести число
Для этого необходимо выполнить следующие действия:
Делим
на и записываем остаток от деления Результат деления вновь делим на
и опять записываем остаток Повторяем операцию до тех пор пока результат деления не будет равен нулю
Записываем полученные остатки в обратном порядке. Полученное число и будет искомым
Пример:
Дано число
Ответ:
Алгоритм №2
Есть и другой способ перевода числа
Пример:
Дано число
Шаг первый. Прикинем степень двойки, не превышающую данного числа.
Шаг второй. Так как число
больше , значит мы можем представить число в виде суммы . Повторим первый шаг: прикинем степень двойки, не превышающую второго слагаемого.
Повторим второй шаг: так как число
больше , значит мы можем представить число в виде суммы . Далее повторим вторые и третьи шаги до тех пор, пока мы не разложим число
на сумму степеней двоек. В итоге мы получим следующую запись: Шаг третий. Расставим единицы в тех разрядах, номера которых равны степеням двоек в полученной ранее сумме (разряды пронумерованы с
).
Ответ:
Перевод из двоичной NS в десятичную
Перевод числа из двоичной NS в десятичную осуществляется путем умножения каждого разряда числа на
Пример:
Дано число
Шаг первый. Пронумеруем разряды данного нам двоичного числа от 0 справа налево:
Шаг второй. Запишем сумму вида
, где — номер разряда, начиная с :
Ответ:
Перевод из двоичной NS в восьмеричную
Разобьем данное нам число
Пример:
Дано число
По таблице увидим, что двоичному числу
Ответ:
Перевод из восьмеричной NS в двоичную
Заменим каждую цифру числа
Пример:
Дано число
Ответ:
Перевод из десятичной NS в восьмеричную
Алгоритм перевода в восьмеричную NS тот же, что и алгоритм №1 перевода в двоичную NS.
Необходимо выполнить следующие действия:
Делим
на и записываем остаток от деления Результат деления вновь делим на
и опять записываем остаток Повторяем операцию до тех пор пока результат деления не будет равен нулю
Записываем полученные остатки в обратном порядке. Полученное число и будет искомым
Пример:
Дано число
Ответ:
Перевод из восьмеричной NS в десятичную
Для перевода из восьмеричной NS в десятичную, необходимо умножить каждый разряд числа
Пример:
Дано число
Ответ:
Перевод из десятичной NS в шестнадцатеричную
Алгоритм перевода в восьмеричную NS практически тот же, что и алгоритм №1 перевода в двоичную NS.
Необходимо выполнить следующие действия:
Делим
на и записываем остаток от деления Результат деления вновь делим на
и опять записываем остаток Повторяем операцию до тех пор пока результат деления не будет равен нулю
Переводим остатки бо́льшие
согласно таблице перевода (см приложение) Записываем полученные остатки в обратном порядке. Полученное число и будет искомым
Пример:
Дано число
Ответ:
Перевод из шестнадцатеричной NS в десятичную
Для перевода из восьмеричной NS в десятичную, необходимо перевести
Пример:
Дано число
Ответ:
Приложение
Общий вид формулы для перевода числа из произвольной NS в десятичную:
, где:
— число в десятичной NS — цифра числа в исходной NS, начиная с младшего разряда (справа налево) — основание исходной NS — номер старшего разряда (индекс последней цифры количество цифр в исходном числе )
Таблица перевода между NS
0 | 0 | 0 | 0 |
1 | 1 | 1 | 1 |
2 | 10 | 2 | 2 |
3 | 11 | 3 | 3 |
4 | 100 | 4 | 4 |
5 | 101 | 5 | 5 |
6 | 110 | 6 | 6 |
7 | 111 | 7 | 7 |
8 | 1000 | 10 | 8 |
9 | 1001 | 11 | 9 |
10 | 1010 | 12 | A |
11 | 1011 | 13 | B |
12 | 1100 | 14 | C |
13 | 1101 | 15 | D |
14 | 1110 | 16 | E |
15 | 1111 | 17 | F |
... | ... | ... | ... |