цифровая электроника
вычислительная техника
встраиваемые системы

 
» » Инженерное объяснение шестнадцатеричной и восьмеричной систем счисления



Инженерное объяснение шестнадцатеричной и восьмеричной систем счисления

Автор: Mike(admin) от 10-03-2023, 03:55

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


Инженерное объяснение шестнадцатеричной и восьмеричной систем счисления

Двоичная система счисления обычно известна своей огромной ролью в мире ИТ. От программирования до IP-адресов, биты и байты являются основным элементом операционной системы компьютера. Но для аппаратных инженеров вопросы о системах нумерации не приводятся в типичном компьютерном учебнике. Простое вычисление десятичного эквивалента двоичного числа с помощью аналогии с «выключателем света» не дает ответа на фундаментальные вопросы о том, как оно используется, например, в области автоматизации. Возможно, даже более важно: почему?


Когда компьютеры были впервые внедрены в эксплуатацию, память формировалась в виде отдельных битов в обширных массивах, сотнях или даже тысячах адресов, относящихся к каждой единице и 0 данных. Технологии памяти быстро развились до такой степени, что можно было хранить сотни тысяч и миллионы битов. Чтобы более эффективно использовать функции хранения и адресации в памяти, эти биты хранились группами по 8. Существует очень мало случаев, когда менее 8 бит было бы достаточно данных для хранения программы. Ну, за исключением нас, инженеров, любящих булевы значения, но двоичный счет является предметом других статей.


Группам из 8 бит было дано имя: байты. По сей день память измеряется в килобайтах и мегабайтах и постоянно увеличивается. Эти 8-битные байты могут хранить значение от 0000 0000 (равно 0 в десятичной системе) до 1111 1111 (равно 255 в десятичной системе). В некоторых случаях они могут представлять значение, например, температуру или давление от датчика. Они также могут указывать набор состояний аварийных сигналов, чтобы десятичное эквивалентное значение представляло собой уникальную комбинацию кодов аварийных сигналов. В других случаях указатель адреса, например IP-адрес.


Чтобы упростить языки нумерации, было полезно отображать эти байты информации менее чем в восьми цифрах. А для более длинных строк байтов сохраняется еще больше места. Было принято решение разбить значения на две 4-битные группы. Четыре бита могут равняться значению от 0 до 15. По этой причине стала популярна шестнадцатеричная система счисления. Те, кто знаком с шестнадцатеричной системой, узнают ее по значениям от 0 до 15, но в ней используется альтернативный набор символов: от 0 до F. Проблема с использованием значений от 10 до 15 заключается в том, что на самом деле это два числа. Число 10 на самом деле 1 и 0, каждое из которых имеет разрядное значение. Чтобы решить эту проблему, числам 10-15 присваиваются буквы A-F, чтобы компьютер и читатель распознавали их как один символ.


В программировании системы управления шестнадцатеричные значения очень часто используются для представления адреса устройства и значения данных, возвращаемых датчиком или системой. Они будут отображаться с 0x, например, 0x2F представляет собой байт – четыре бита для 2 и четыре бита для F. Многие промышленные сети используют байтовую адресацию для устройств, поэтому максимальное количество узлов равно 255 с адресами от 0x00 до 0xFF. Может быть полезно вести таблицу шестнадцатеричных и десятичных эквивалентов. Тем не менее, многие программы ПЛК предоставляют пользователям возможность представлять данные в любом формате, поэтому диаграмма не нужна.


Инженерное объяснение шестнадцатеричной и восьмеричной систем счисления

Для некоторых потоков данных одного байта недостаточно. Учитывайте температуру, где градусы могут легко превысить 255. Таким образом, в этих случаях может быть полезно хранить данные в виде 2-байтового целого числа, которое широко известно как 16-битное целое число. Для этих 16-битных значений шестнадцатеричное представление будет состоять из четырех символов, например, 0x2F3C.


Шестнадцатеричная – одна из самых больших распространенных систем нумерации, в группах по 4 бита. Поскольку байт настолько распространен, почему бы не использовать такие 8-битные группы? Ответ становится ясным, если учесть, что A-F был выбран для представления значений, выходящих за пределы одной десятичной цифры. Если бы мы попытались спроектировать систему с 255 различными односимвольными цифрами, мы были бы вынуждены использовать все числа в верхнем и нижнем регистре, возможно, некоторые греческие буквы, что было бы намного сложнее, чем кто-либо мог себе представить.


Инженерное объяснение шестнадцатеричной и восьмеричной систем счисления

По этой причине мы остаемся на базе шестнадцатеричной системы как баланс между консолидацией и пониманием.


Причиной включения в некоторую архитектуру управления (хотя даже в этом случае это встречается редко) является функциональная совместимость с устаревшими системами. Когда память была более ограниченной, целые числа (слова) не всегда были 8- и 16-битными, как сегодня. Некоторые из них действительно были кратны 3, например 12-битные слова, и восьмеричное число может быть полезно для консолидации этих данных.


Конечно, некоторые системы счисления более распространены, чем другие. Мы не можем прожить ни дня без нашей знакомой десятичной системы, а в мире систем управления мы часто сталкиваемся и с двоичной системой. Понимание структуры и применения шестнадцатеричных значений также может способствовать пониманию многих спецификаций продуктов, файлов EDS и протоколов связи и прокладывает путь к пониманию других систем кодирования, таких как ASCII, коды Грея и двоично-десятичный код.




© digitrode.ru




Уважаемый посетитель, Вы зашли на сайт как незарегистрированный пользователь.
Мы рекомендуем Вам зарегистрироваться либо войти на сайт под своим именем.

Комментарии:

Оставить комментарий