Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Дз_1.docx
Скачиваний:
10
Добавлен:
14.11.2019
Размер:
185.37 Кб
Скачать
    1. Шестнадцатеричная система счисления

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

A = 10, B = 11, C = 12, D = 13, E = 14 и F = 15.

Таким образом, старшая цифра – F.

Д

рис. 2.29

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

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

разряды  2 1 0

1BC16 = 1162 + 11161 + 1280 = 256 + 176 + 12 =444.

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

1BC16 = (116 + 11)16 + 12 = 2716 + 12 =444.

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

0

0000

8

1000

1

0001

9

1001

2

0010

A (10)

1010

3

0011

B (11)

1011

4

0100

C (12)

1100

5

0101

D (13)

1101

6

0110

E (14)

1110

7

0111

F (15)

1111

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

5E12316 = 101 1110 0001 0010 00112.

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

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

10000100001010101111002 = 10 0001 0000 1010 1011 11002 = 210ABC16

Э

рис. 2.30

рис. 2.31

рис. 2.32

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

0

1

0

1

1

1

1

0

5

E

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

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

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

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

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

538 = 101 0112 = 10 10112 = 2B16.

Теперь сложим:

2B16 + 5616 = 8116

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

8116 = 1000 00012.