Восьмеричная и шестнадцатеричная системы
С двоичными числами неудобно работать из-за их длины. Количество двоичных разрядов числа N почти в три раза превышает число его десятичных цифр. Поэтому для сокращенной записи двоичных чисел применяют их восьмеричные и шестнадцатеричные эквиваленты:
Как восьмеричная, так и шестнадцатеричная системы счисления относятся к позиционным и имеют своими основаниями, соответственно, числа и . В восьмеричной системе используются цифры от 0 до 7. В шестнадцатеричной системе цифр в два раза больше и для их символьного обозначения прибегают к смешанному набору буквенных и цифровых знаков:
0 = 0 1 = 1 2 = 2 3 = 3 | 4 = 4 5 = 5 6 = 6 7 = 7 | 8 = 8 9 = 9 А = 10 В = 11 | С = 12 D = 13 E = 14 F = 15 |
Расшифровка восьмеричного числа производится путем суммирования его цифр, умноженных на соответствующие степени 8:
Точно так же расшифровываются и шестнадцатеричные числа:
При переводе целого числа в восьмеричную систему его последовательно делят на 8 и запоминают остатки от деления, которые определяют цифры восьмеричного числа, начиная с младшей.
Обратите внимание на то, что младшая восьмеричная цифра числа N равна остатку от деления N на 8. Если бы мы делили на 8 двоичный эквивалент числа
,
то старшие слагаемые, имеющие множители большие чем , поделились бы нацело, а в остаток попали бы только три последние слагаемые . Это означает, что группа из трех младших двоичных цифр числа N в точности совпадает с младшей восьмеричной цифрой этого же числа. Точно такие же рассуждения показывают, что следующая группа из трех двоичных цифр совпадает со второй восьмеричной цифрой и т. д.
Поэтому перевод восьмеричных чисел в двоичные осуществляется простой заменой каждой восьмеричной цифры ее трехразрядным двоичным эквивалентом:
0 = 000 1 = 001 | 2 = 010 3 = 011 | 4 = 100 5 = 101 | 6 = 110 7 = 111 |
Пример:
, т. е. это число 11001102
Точно такая же взаимосвязь может быть установлена между шестнадцатеричным представлением числа и его двоичным форматом. Поскольку , то каждой шестнадцатеричной цифре соответствует ее четырехразрядный эквивалент:
0 = 0000 1 = 0001 2 = 0010 3 = 0011 | 4 = 0100 5 = 0101 6 = 0110 7 = 0111 | 8 = 1000 9 = 1001 A = 1010 B = 1011 | C = 1100 D = 1101 E = 1110 F = 1111 |
Взаимное соответствие между шестнадцатеричным и двоичным представлениями числа N осуществляется так же просто – каждая шестнадцатеричная цифра заменяется своим четырехразрядным двоичным изображением:
,т.е. это число 1101001012
Для ускорения процедуры перевода чисел в двоичную систему их сначала за меньшее количество шагов переводят в восьмеричную или шестнадцатеричную систему, а затем каждую цифру механически преобразуют в тройку или четверку двоичных разрядов.
Для перевода числа из двоичной системы в восьмеричную или шестнадцатеричную систему нужно это число разбивать на триады или тетрады, начиная с младших разрядов, при необходимости добавляя нули впереди (от этого число не изменится).
Переведем число 111010110012 в восьмеричную систему.
а) разбить число на триады, начиная с младших разрядов, и добавить нуль впереди числа:
011 101 011 0012
б) поставить в соответствии каждой тройке восьмеричную цифру:
35318
Переведем число 111010110012 в шестнадцатеричную систему.
а) разбить число на тетрады, начиная с младших разрядов, и добавить нуль впереди числа:
0111 0101 1001
б) поставить в соответствии каждой тетраде шестнадцатеричную цифру:
75916
На IBM – совместимых ПК чаще применяется шестнадцатеричная система, которая хорошо «ложится» на байтовую структуру памяти. В одном байте помещается ровно две шестнадцатеричные цифры. При выводе содержимого участка памяти с двоичными данными на экран обычно выдаются шестнадцатеричные эквиваленты каждого байта.