В ЭВМ, помимо десятичной и двоичной систем счисления,
используются системы счисления с основанием восемь и
шестнадцать, которые соответственно называются,
восьмеричная и шестнадцатеричная системы счисления.
Как вы уже понимаете основание восьмеричной системы
счисления равно восьми, а алфавит этой системы счисления
состоит из восьми следующих цифр: 0,1,2,3,4,5,6,7.
В шестнадцатеричной системе счисления основание
соответственно равно шестнадцати, а алфавит составляют
следующие шестнадцать цифр: 0,1,2,3,4,5,6,7,8,9,А,B,C,D,E,F.
Применение в ЭВМ восьмеричной и шестнадцатеричной систем
счисления объясняется тем, что восемь является третьей
степенью двойки, а шестнадцать четвертой степенью двойки
и поэтому перевод чисел между этими системами счисления
абсолютно прост. Так как восемь является третьей
степенью двойки, то это означает, что каждой
восьмеричной цифре будет соответствовать три двоичных
разряда, а именно:
Восьмеричная
цифра |
Двоичный код |
Восьмеричная
цифра |
Двоичный код |
0 |
000 |
4 |
100 |
1 |
001 |
5 |
101 |
2 |
010 |
6 |
110 |
3 |
011 |
7 |
111 |
Аналогично дело обстоит и шестнадцатеричной системой
счисления, но поскольку шестнадцать является четвертой
степенью двойки, то каждой шестнадцатеричной цифре будут
соответствовать уже четыре двоичных разряда.
Шестнадцатеричная
цифра |
Двоичный код |
Шестнадцатеричная
цифра |
Двоичный код |
0 |
0000 |
8 |
1000 |
1 |
0001 |
9 |
1001 |
2 |
0010 |
A |
1010 |
3 |
0011 |
B |
1011 |
4 |
0100 |
C |
1100 |
5 |
0101 |
D |
1101 |
6 |
0110 |
E |
1110 |
7 |
0111 |
F |
1111 |
Перевод чисел из двоичной системы счисления в
шестнадцатеричную и восьмеричную, а так же из
восьмеричной и шестнадцатеричной в двоичную рассмотрим
на примерах.
Пример 1: Двоичное число 1100111010 записать в
шестнадцатеричной системе счисления.
Первоначально мы видим, что двоичное число содержит
десять разрядов, что бы перевести число в
шестнадцатеричную систему счисления количество разрядов
двоичного числа должно быть кратно четырем, поэтому
допишем к исходному числу спереди два незначащих нуля.
Эти нули не изменят число, поэтому они незначащие.
Получим:
001100111010
Полученную запись разобьем на группы, каждая из которых
состоит из четырех разрядов.
0011 0011 1010
С помощью таблицы заменим каждую группу двоичных цифр
соответствующей шестнадцатеричной цифрой.
0011 0011 1010
3 3 А
Таким образом:
1100111010В=33АН
Пример 2: Двоичное число 101111110111 записать в
восьмеричной системе счисления.
Принцип решения абсолютно аналогичен предыдущему
примеру, с той лишь разницей, что разбивать нужно на
группы по три двоичных разряда в каждой группе.
Поскольку в исходном числе двенадцать двоичных разрядов,
а двенадцать кратно трем, то в данном случае не нужно
дописывать спереди незначащие нули.
101 111 110 111
Используя таблицу 1, заменим каждую группу
соответствующей восьмеричной цифрой.
101 111 110 111
5 7 6 7
В итоге получим, что:
101111110111В=5767О
Пример 3: Используя таблицу соответствия
шестнадцатеричных цифр и двоичных разрядов, запишите
шестнадцатеричное число В3А в двоичной системе
счисления?
Так как каждой шестнадцатеричной цифре соответствует
строго определенный набор, состоящий из четырех двоичных
разрядов. Произведем замену каждой шестнадцатеричной
цифры соответствующими двоичными разрядами.
В 3 А
1011 0011 1010
Таким образом, получаем:
В3АН=101100111010В
Пример 4: Используя таблицу соответствия
восьмеричных цифр и двоичных разрядов, запишите
восьмеричное число 345 в двоичной системе счисления?
В отличие от шестнадцатеричных цифр каждой восьмеричной
цифре соответствует три двоичных разряда, осуществим
соответствующие замены.
3 4 5
011 100 101
Таким образом, получим результат:
345О=011100101В
Поскольку, ноль, записанный вначале числа, не является
значащим, то при записи его можно опустить, в результате
получим запись:
345О=11100101В
Перевод чисел из десятичной системы счисления в
шестнадцатеричную и восьмеричную системы счисления
принципиально ничем не отличается от перевода десятичных
чисел в двоичную систему счисления, с той лишь разницей,
что деление с остатком выполняется не на два, а на
шестнадцать и восемь соответственно. В схеме Горнера,
при переводе чисел из шестнадцатеричной и восьмеричной
систем счисления в десятичную, так же в произведениях
двойка заменяется на шестнадцать или восемь
соответственно.
Для лучшего понимания процедур перевода чисел между
этими системами счисления, воспользуемся примерами.
Пример 5: Запишите десятичное число 363 в
шестнадцатеричной системе счисления.
363 | 16
352 22 | 16
363=16BH
11 16 1 | 16
6 0 0
1
Необходимо обратить внимание на то, что первый остаток
от деления равен 11, но в шестнадцатеричной системе
счисления нет цифры 11, поэтому при записи числа в
шестнадцатеричной системе счисления, остаток 11
заменяется соответствующей цифрой шестнадцатеричного
алфавита.
Пример 6: Перевести шестнадцатеричное число 21Ан
в десятичную систему счисления.
21Ан =2*162+1*161+10*160=512+16+10=538
В данном примере, при вычислениях мы заменяем
шестнадцатеричную цифру А на соответствующее десятичное
значение.
Пример 7: Запишите десятичное число 87 в
восьмеричной системе счисления.
87 | 8
80 10 | 8
87=127o
7 8 1 | 8
2 0 0
1
Пример 8: Перевести восьмеричное число 321о
в десятичную систему счисления. Для выполнения задания
воспользуемся схемой Горнера.
321о =3*82+2*81+1*80=192+16+1=209 |