Найти тему

Бушков А.А. Статья3. Шестнадцатеричная система исчисления.

Статья3. Шестнадцатеричная система исчисления.

Для удобства программирования в абсолютных кодах применяется Шестнадцатеричная система исчисления. Обозначение – 16СС или HEX или H.

В байте каждый полубайт изображается цифрой 16СС.

Рассмотрим подробнее обозначение цифр в 16СС.

1. Десятичная цифра 0 - 0 в 16СС

2. Десятичная цифра 1 - 1 в 16СС

3. Десятичная цифра 2 - 2 в 16СС

4. Десятичная цифра 3 - 3 в 16СС

5. Десятичная цифра 4 - 4 в 16СС

6. Десятичная цифра 5 - 5 в 16СС

7. Десятичная цифра 6 - 6 в 16СС

8. Десятичная цифра 7 - 7 в 16СС

9. Десятичная цифра 8 - 8 в 16СС

10. Десятичная цифра 9 - 9 в 16СС

11. Десятичная цифра 10 - A в 16СС

12. Десятичная цифра 11- B в 16СС

13. Десятичная цифра 12- C в 16СС

14. Десятичная цифра 13- D в 16СС

15. Десятичная цифра 14- E в 16СС

16. Десятичная цифра 15- F в 16СС

Таким образом в 16СС десятичные цифры от 0 до 15 изображаются следующими цифрами: 0,1,2,3,4,5,6,7,8,9,A,B,C,D,E,F

Каждой цифре 16СС соответствуют следующие цифры в 2двоичной СС:

1. 0 это 0000

2. 1 это 0001

3. 2 это 0010

4. 3 это 0011

5. 4 это 0100

6. 5 это 0101

7. 6 это 0110

8. 7 это 0111

9. 8 это 1000

10. 9 это 1001

11. А это 1010

12. В это 1011

13. С это 1100

14. D это 1101

15. E это 1110

16. F это 1111

---------------------------------------------------------------------------------------

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

Байт H99
Байт H99

Этот байт будет записан в 16СС как 99 или Hex99 или H99

-------------------------------------------------------------------------------------

Байт HexBC99
Байт HexBC99

Эти два байта или Полуслово будет записан в 16СС как BC99 или HexBC99 или HBC99

--------------------------------------------------------------------------------------

Байт Hex99
Байт Hex99

Этот байт соответствует следующей цифре в десятичной СИ ( мы уже считали выше):

-4

Пересчитаем этот же байт из 16СС в десятичную:

-5

Получили то же самое число 153

----------------------------------------------------------------------------------

Пересчитаем Полуслово HexBC99 из 16СС в десятичную:

Это полуслово HexBC99
Это полуслово HexBC99
-7

-----------------------------------------------------------------------------------

Общее правило перевода чисел из 16СС в десятичную следующее:

Нумерация цифр в 16СС начинается с 0 справа налево:

Нумерация цифр и вес соответствующих разрядов в 16СС
Нумерация цифр и вес соответствующих разрядов в 16СС

Здесь изображено произвольное число в 16СС – Hex52FA70BC99

Верхняя строка в таблице – нумерация разрядов числа (синим)

Средняя строка в таблице – вес разряда (красным)

Нижняя строка – само число поразрядно.

Переведём число Hex52FA70BC99 в десятичную СС:

-9

=5*68719476736 + 2*4294967296 + 15*268435456 + 10*16777216 + 7*1048576 + 0*65536 + 11*4096 + 12*256 + 9*16 +9 = …(не будем дальше считать)

---------------------------------------------------------------------------------------

Для интереса сделаем перевод знакомого нам десятичного 48281 числа в 16СС.

1. 48281 делим на 16 и фиксируем остаток от деления меньше 16 :

48281 : 16 = 3017, остаток1 = 9 или Hex9

2. 3017 делим на 16 и фиксируем остаток от деления меньше 16 :

3017 :16 = 188, остаток2 = 9 или Hex9

3. 188 делим на 16 и фиксируем остаток от деления меньше 16 :

188 : 16 = 11, остаток3 = 12 или HexC

4. Так как в последнем делении остаток4 = 11 или HexB меньше 16, на этом заканчиваем деление на 16.

5. Записываем остатки с 1 по 4 в порядке справа налево в 16СС :

48281 = HexBC99

---------------------------------------------------------------------------------------

Для интереса сделаем перевод знакомого нам десятичного 48281 числа в 16СС с помощью калькулятора.

1. 48281 : 16 = 3017,5625

Очевидно, что 0,5625 это количество целых 1/16 частей в остатке от деления. Узнаем, сколько таких целых частей:

0,5625 : (1/16) = 0,5625 * 16 = 9. Остаток1 = 9 или Hex9.

2. 3017 : 16 = 188, 5625

0,5625 * 16 = 9. Остаток2 = 9 или Hex9.

3. 188 : 16 = 11,75

0,75 * 16 = 12. Остаток3 = 12 или HexC.

4. Остаток4 = 11 или HexB. Деление прекращаем, т.к. целое частное <16.

5. Записываем остатки с 1 по 4 в порядке справа налево в 16СС :

48281 = HexBC99

--------------------------------------------------------------------------------

Замечание.

В программировании в абсолютных кодах самые распространенные форматы в 16СС это:

1. Полубайт - 1 Hex число

2. Байт -2 Hex числа

3. Полуслово(2байта) -4 Hex числа

4. Слово(4 байта) -8 Hex чисел

5. Двойное слово(8 байт) -16 Hex чисел

-------------------------------------------------------------------------------------

Приведём пример использования 16СС в абсолютных кодах команд на примере ЭВМ ЕС-1035, см. фото:

ЭВМ ЕС-1035 и ваш покорный слуга.
ЭВМ ЕС-1035 и ваш покорный слуга.

Команда «Начать Ввод-ввод» выглядела так:

9B 00 00 0F

Где 9B – код команды «Начать Ввод-ввод»

Последний байт 0F – адрес устройства Ввода – вывода, в данном случае это печать – АЦПУ (алфавитно-цифровое печатающее устройство)

Третья цифра 0 справа – это номер Канала Ввода-вывода, в данном случае

Это Мультиплексный канал (для медленных устройств)

---------------------------------------------------------------------------------------

Еще прмер.

Идентификатор вот этого моего канала здесь в Яндексе такой:

62cd3cfc63f88417d7e74b79

Если вы скопируете этот идентификатор и поместите его в Поиск Яндекса, то найдёте этот канал.

Здесь 12 шестнадцатеричных цифр.

Рассмотрим их подробнее и переведём каждый байт в двоичную и десятичную системы исчисления:

-11

Прикинем, сколько чисел можно изобразить с помощью 12 шестнадцатеричных чисел. Сосчитаем на калькуляторе в телефоне.

-12

12 шестнадцатеричных чисел содержат 8*12=96 двоичных бит.

Сосчитаем, сколько чисел можно изобразить с помощью 96 двоичных бит:

-13

Теперть вспомним, что на земле сейчас живёт чуть менее 8 миллиардов человек: 7 969 111 502.

Получается, что с помощью 12 шестнадцатеричных чисел можно создать каждому живущему ныне человеку на Земле по (10 в степени 19) каналов!

Сотрудники Вычислительного Центра Главсредволговодстроя, г. Саратов, 1977-1993.

Куляхтин Анатолий Васильевич
Куляхтин Анатолий Васильевич
Ефремов А.В. , Бушков А.А. , Куляхтин А.В. , Никитин С.А. , Стриженко В.С.
Ефремов А.В. , Бушков А.А. , Куляхтин А.В. , Никитин С.А. , Стриженко В.С.

------------------------

Если Вам понравился материал статьи, подпишитесь пожалуйста на мой канал в целом.

Для этого пройдите по ссылке ниже и нажмите кнопку "Подписаться"

https://dzen.ru/profile/editor/id/62cd3cfc63f88417d7e74b79