Шестнадцатеричная система счисления



 

Шестнадцатеричная система счисления (позиционная система с основанием 16) широко используется для записи адресов и содержимого ячеек памяти компьютера. Её алфавит содержит 16 цифр, вместе с 10 арабскими цифрами (0..9) используются первые буквы латинского алфавита:

А = 10, В = 11, C = 12, D = 13, Е = 14, F = 15.

Таким образом, старшая цифра в шестнадцатеричной системе — F.

Для перевода чисел из десятичной системы в шестнадцатеричную используют алгоритм деления на 16 и взятия остатков. Важно не забыть, что все остатки, большие 9, нужно заменить на буквы:

Для обратного перехода значение каждой цифры умножают на 16 в степени, равной её разряду, и полученные значения складывают:

Можно также использовать схему Горнера:

1ВС16 = (1 • 16 + 11) • 16 + 12 = 27 • 16 + 12 = 444.

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

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

 

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

2. Соединить тетрады в одно «длинное» двоичное число.

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

5Е12316 = 101 1110 0001 0010 00112.

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

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

 

1. Разбить двоичное число на тетрады, начиная справа.

В начало самой первой тетрады добавить слева нули, если это необходимо.

2. Перевести каждую тетраду (отдельно) в шестнадцатеричную систему счисления.

3. Соединить полученные цифры в одно «длинное» число.

Например: 10000100001010101111002 = 10 0001 0000 1010 1011 11002 = 210АВС16.

Шестнадцатеричная система оказалась очень удобной для записи значений ячеек памяти. Байт в современных компьютерах представляет собой 8 соседних битов, т. е. две тетрады. Таким образом, значение байтовой ячейки можно записать как две шестнадцатеричные цифры:

Каждый полубайт (4 бита) «упаковывается» в одну шестнадцатеричную цифру. Благодаря этому замечательному свойству, шестнадцатеричная система в сфере компьютерной техники практически полностью вытеснила восьмеричную1.

1 Начиная с 1964 года, когда шестнадцатеричная система стала широко использоваться в документации на новый компьютер IBM/360.

 

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

При выполнении сложения нужно помнить, что в системе с основанием 16 перенос появляется тогда, когда сумма в очередном разряде превышает 15. Удобно сначала переписать исходные числа, заменив все буквы на их численные значения:

При вычитании заём из старшего разряда равен 1016 = 16, а все «промежуточные» разряды заполняются цифрой F — старшей цифрой системы счисления:

Если нужно работать с числами, записанными в разных системах счисления, их сначала переводят в какую-нибудь одну систему. Например, пусть требуется сложить 538 и 5616 и записать результат в двоичной системе счисления. Здесь можно выполнять сложение в двоичной, восьмеричной, десятичной или шестнадцатеричной системе. Переход к десятичной системе, а потом перевод результата в двоичную трудоёмок. Практика показывает, что больше всего ошибок делается при вычислениях в двоичной системе, поэтому лучше выбирать восьмеричную или шестнадцатеричную систему. Например, переведём число 538 в шестнадцатеричную систему через двоичную:

538 = 101 0112 = 10 10112 = 2В16.

Теперь сложим числа в 16-ричной системе:

16 + 5616 = 8116

и переведём результат в двоичную систему:

8116 = 1000 00012.

Вопросы и задания

 

1. Какие цифры используются в шестнадцатеричной системе? Сколько их?

2. Почему появилась необходимость использовать латинские буквы?

3. Сформулируйте алгоритмы перевода чисел из шестнадцатеричной системы счисления в двоичную и обратно.

4. Какое минимальное основание должно быть у системы счисления, чтобы в ней могли быть записаны числа 123, 4АВ, 9АЗ и 8455?

Задачи

 

1. Переведите в двоичную и восьмеричную системы числа 7F1A16, С73В16, 2FE116, А11216.

2. Переведите в двоичную и шестнадцатеричную системы числа 61728, 53418, 77118, 12348.

3. Переведите в восьмеричную и шестнадцатеричную системы числа

а) 11101111010102;
б) 10101011010101102;
в) 1111001101111101012;
г) 1101101101011111102.

4. Переведите числа 29, 43, 54, 120, 206 в шестнадцатеричную, восьмеричную и двоичную системы счисления.

5. Переведите числа 738, 1348, 2458, 3568 и 4678 в шестнадцатеричную, десятичную и двоичную системы счисления.

6. Запишите числа 101101012, 11101002, 10001112, 101111102 в шестнадцатеричной, восьмеричной и десятичной системах счисления.

7. Вычислите значения следующих выражений:

а) 3AF16 + 1СВЕ16;
б) 1ЕА16 + 7D716;
в) А8116 + 37716;
г) 1CFB16 - 22F16;
д) 22F16 - CFB16;
е) 1АВ16 - 2CD16.

8. Вычислите значения следующих выражений, запишите результат в двоичной, восьмеричной, десятичной и шестнадцатеричной системах счисления:

а) 4F16 + 1111102;
б) 5А16 + 10101112;
в) 2568 + 2С16;
г) 1101112 + 1358;
д) 1216 + 128 • 112;
е) 358 + 2С16 • 1012.

9. Вычислите значения следующих выражений, запишите результат в двоичной, восьмеричной, десятичной и шестнадцатеричной системах счисления:

а) 1516 • 1102;
б) 2А16 • 128;
в) 3416 : 328;
г) 7408 : 1816.

*10. Переведите числа 49,6875 и 52,9 в шестнадцатеричную систему счисления.

 


Дата добавления: 2019-11-16; просмотров: 603; Мы поможем в написании вашей работы!

Поделиться с друзьями:






Мы поможем в написании ваших работ!