10(b)-Lesson №14

Урок №14. Двоичная, восьмеричная и шестнадцатеричная системы счисления.

Пусть требуется перевести число из восьмеричной системы в двоичную. Конечно, можно перевести число сначала в десятичную систему, а потом — в двоичную. Но для этого требуется выполнить две непростые операции, в каждой из них легко ошибиться.

Оказывается, можно сделать перевод из восьмеричной системы в двоичную напрямую, используя тесную связь между этими системами: их основания связаны равенством 23 = 8.

Теперь переведём отдельно каждую восьмеричную цифру в двоичную систему. Поскольку три двоичных разряда позволяют записать все числа от 0 до 7 (и никаких других чисел!), каждая восьмеричная цифра может быть записана в виде триады (группы из трёх цифр) в двоичной системе (табл. 2.1).

Алгоритм перевода восьмеричного числа в двоичную систему счисления

  1. Перевести каждую цифру (отдельно) в двоичную систему. Записать результаты в виде триады, добавив, если нужно, нули в начале.
  2. Соединить триады в одно «длинное» двоичное число.

Например, для числа 357218 сразу получаем:

357218 = 11 101 111 010 0012.

В этой записи триады специально отделены друг от друга пробелами. Обратите внимание, что все триады дополнены спереди нулями до трёх цифр:

2 = 102 = 0102, 1 = 12 = 0012.

Для самой первой триады это делать необязательно, потому что лидирующие нули в записи числа никак его не меняют. Напротив, если «потерять» нули в середине числа, получится неверный результат.

А если разбить двоичное число на триады, то можно быстро перевести его в восьмеричную систему счисления. Именно благодаря этому свойству восьмеричную систему удобно использовать для сжатой записи двоичных кодов.

Алгоритм перевода двоичного числа в восьмеричную систему счисления

  1. Разбить двоичное число на триады, начиная справа. В начало самой первой триады добавить лидирующие нули, если это необходимо.
  2. Перевести каждую триаду (отдельно) в восьмеричную систему счисления.
  3. Соединить полученные цифры в одно «длинное» число.

Переведём в восьмеричную систему число 10100111001011101112. Разобьём его на триады (начиная справа), в начало числа нужно добавить два нуля (они подчёркнуты):

10100111001011101112 = 001 010 011 100 101 110 1112.

Далее по табл. 2.1 переводим каждую триаду отдельно в восьмеричную систему:

10100111001011101112 = 12345678.

Теперь представьте себе объём вычислений, который потребуется для решения этой задачи через десятичную систему.

Основания двоичной и шестнадцатеричной систем связаны соотношением 24 = 16, поэтому можно переводить числа из шестнадцатеричной системы в двоичную напрямую. Алгоритмы перевода чисел из шестнадцатеричной системы в двоичную и обратно аналогичны соответствующим алгоритмам для восьмеричной системы. Каждая шестнадцатеричная цифра представляется в виде тетрады (группы из четырёх двоичных цифр) в двоичной системе счисления (табл. 2.2).

Переведём в двоичную систему число 5Е12316 (здесь показана разбивка на тетрады):

5Е12316 = 10111100001 001000112.

Обратите внимание, что для цифр, меньших 8 (кроме первой), результат перевода в двоичную систему нужно дополнить старшими нулями до четырёх знаков.

При обратном переводе нужно разбить двоичное число на тетрады, начиная справа, и каждую тетраду отдельно перевести в двоичную систему:

10000100001010101111002 =

= 10 0001 0000 1010 1011 11002 = 210АВС16.

Перевод из шестнадцатеричной системы в восьмеричную (и обратно) удобнее выполнять через двоичную систему. Можно, конечно, использовать и десятичную систему, но в этом случае объём вычислений будет значительно больше.

Пример 1.

Переведём число 110101001112 в восьмеричную систему счисления.

Пример 2.

Переведём число 16АС16 в двоичную систему счисления.

Пример 3. 

Выполним перевод восьмеричного 67 2528 числа в шестнадцатеричную систему счисления.

 

Выполнить домашнюю работу

Выполнить классную работу