Перевод чисел между системами счисления, основания которых равно степени числа 2
Перевод чисел между системами счисления, основания которых равны значениям степеней числа 2 (т. е. P = 2 n), можно произвести по более простым алгоритмам. Получим эти правила.
Перевод между двоичной и восьмеричной системами счисления
Определим информационный вес двоичной цифры. Так как алфавит двоичной системы содержит две цифры (0 и 1), то используя формулу Хартли, имеем:
N = 2 i, 2 = 2 i, откуда i = 1 бит
Аналогично для восьмеричной цифры:
N = 2 i, 8 = 2 i, 2 3 = 2 i, откуда i = 3 бит
Нетрудно заметить, что информационный вес восьмеричной цифры в три раза больше двоичного. Поэтому каждой восьмеричной цифре можно поставить в соответствие группу из трех двоичных разрядов (триаду):
0 – 000, 1 – 001, 2 – 010, 3 – 011, 4 – 100, 5 – 101, 6 – 110, 7 – 111
Последнее утверждение позволяет сформулировать алгоритм перевода двоичного числа в восьмеричную систему счисления:
- Разбить двоичное число на триады, справа налево.
- Если в правой группе меньше трех цифр, то добавить ведущие нули.
- Каждую триаду перевести в восьмеричную систему счисления.
- Записать полученные цифры в соответствующих разрядах восьмеричного числа.
Пример. Перевести двоичное число 10111011102 в восьмеричную систему счисления.
Для решения задачи воспользуемся выше приведенным алгоритмом:
- 1.011.101.110
- 001.011.101.110
- 1 3 5 6
- 10111011102 = 13568
Ответ. 1356
Алгоритм перевода восьмеричного числа в двоичную систему счисления:
- Разбить двоичное число на триады, справа налево.
- Поставить в соответствие каждой восьмеричной цифре двоичную триаду.
- Соединить триады и записать двоичное число.
- Удалить (если существуют) незначащие нули.
Пример. Перевести восьмеричное число 2578 в двоичную систему счисления.
Используем алгоритм, приведенный выше:
- 010.101.111
- 010101111
- 10101111
Таким образом, 2578 = 101011112
Ответ. 10101111
Перевод между двоичной и шестнадцатеричной системами счисления
Определим информационный вес шестнадцатеричной цифры:
N = 2 i, 16 = 2 i, 2 4 = 2 i, откуда i = 4 бит
Итак, информационный вес шестнадцатеричной цифры в четыре раза больше двоичного. Значит, каждой цифре шестнадцатеричной системы счисления можно поставить в соответствие группу из четырех двоичных разрядов (тетраду):
0 – 000, 1 – 001, 2 – 010, 3 – 011, 4 – 100, 5 – 101, 6 – 110, 7 – 111
8 – 0111, 9 – 1001, A – 1010, B – 1011, C – 1100, D – 1101, E – 1110, F – 1111
Алгоритм перевода двоичного целого числа в шестнадцатеричную систему счисления:
- Разбить двоичное число на тетрады, справа налево.
- Если в правой группе меньше четырех цифр, то добавить ведущие нули.
- Каждую тетраду перевести в шестнадцатеричную систему счисления.
- Записать полученные цифры в соответствующих разрядах шестнадцатеричного числа.
Пример. Перевести двоичное число 10011011102 в шестнадцатеричную систему счисления.
Воспользуемся выше приведенным алгоритмом:
- 10.0110.1110
- 0010.0110.1110
- 2 6 E
- 10011011102 = 26E16
Ответ. 26E
Алгоритм перевода шестнадцатеричного числа в двоичную систему счисления:
- Поставить в соответствие каждой шестнадцатеричной цифре двоичную тетраду.
- Соединить тетрады и записать двоичное число.
- Удалить (если существуют) незначащие нули.
Пример. Перевести шестнадцатеричное число 3AC16 в двоичную систему счисления.
Используем алгоритм, приведенный выше:
- 0011.1010.1100
- 001110101100
- 1110101100
Таким образом, 3AC16 = 11101011002
Ответ. 1110101100