Шестнадцатеричная система счисления
☰
Шестнадцатеричная система счисления, так же как восьмеричная, широко используется в компьютерной науке из-за простоты перевода в нее двоичных чисел. В случае шестнадцатеричной записи числа получаются более компактными.
В качестве алфавита шестнадцатеричной системы счисления используются цифры от 0 до 9 и шесть первых латинских букв – A, B, C, D, E, F. При переводе в десятичную систему буквы заменяются числами 10, 11, 12, 13, 14, 15 соответственно.
При переводе двоичного числа в шестнадцатеричное, первое разбивается на группы по четыре разряда, начиная с конца. В случае, если количество разрядов не кратно четырем, первая четверка дописывается нулями впереди. Каждой четверке соответствует одноразрядное число шестнадцатеричной системы счисления.
Пример:
10001100101 = 0100 1100 0101 = 4 C 5 = 4C5
В случае обратного перевода шестнадцатеричные цифры заменяются соответствующими четырехразрядными двоичными числами.
Перевод из шестнадцатеричной системы счисления в десятичную выполняется аналогично переводу из двоичной и восьмеричной. Только здесь в качестве основания степени выступает число 16, а цифры от A до F заменяются десятичными числами от 10 до 15.
4C5 = 4 * 162 + 12 * 161 + 5 * 160 = 4 * 256 + 192 + 5 = 1221
Максимальное двухразрядное число, которое можно получить с помощью шестнадцатеричной записи, – это число FF.
FF16 = 15 * 161 + 15 * 160 = 240 + 15 = 25510
В двоичном представлении FF будет выглядеть как восьмиразрядное число 11111111. Наименьшей рабочей ячейкой компьютерной памяти является байт, который состоит из 8-ми битов. Каждый бит может быть в двух состояниях – «включено» и «выключено». Одному из них сопоставляют ноль, другому – единицу.
Следовательно, в одном байте можно сохранить любое двоичное число в диапазоне от 00000000 до 11111111. В десятичном представлении это числа от 0 до 255. В шестнадцатеричном – от 0 до FF. С помощью шестнадцатеричной системы счисления удобно кратко, с помощью двух цифр-знаков, записывать значения байтов. Например, 0E или F5.
Несмотря на то, что 25510 – это максимальное значение, которое можно сохранить в байте, состояний у 8-ми битного байта 256, так как одно из них отводится под хранение нуля. Количество возможных состояний ячейки памяти вычисляется по формуле 2
28 = 256
Шестнадцатеричная система счисления
Главная / Ассемблер / Для чайников / Системы счисления /Как мы увидели выше, с двоичным числом удобно работать при поразрядных операциях, однако запись двоичного числа получается довольно громоздкой. Чтобы немного упростить жизнь программистам, была придумана шестнадцатеричная система счисления, которая использует 16 цифр:
0, 1, 2, 3, 4, 5, 6, 7, 8, 9, A, B, C, D, E, FСоответственно, основание шестнадцатеричной системы равно 16.
Таблица 2.3. Преобразование чисел.
Десятичное | Двоичное | Шестнадцатеричное |
0 | 0000 | 0 |
0001 | 1 | |
2 | 0010 | 2 |
3 | 0011 | 3 |
4 | 0100 | 4 |
5 | 0101 | 5 |
6 | 0110 | 6 |
0111 | 7 | |
8 | 1000 | 8 |
9 | 1001 | 9 |
10 | 1010 | A |
11 | 1011 | B |
12 | 1100 | C |
13 | 1101 | D |
14 | 1110 | E |
15 | 1111 | F |
В конец шестнадцатеричного числа принято ставить букву h. Таким образом мы можем отличить шестнадцатеричное число от чисел в других системах исчисления. Например
11 – десятичное число 11 11b – двоичное число, которое эквивалентно десятичному числу 3 11h – шестнадцатеричное число, которое эквивалентно десятичному числу 17
Буквы в 16 системе счисления. Шестнадцатеричная нумерация и адресация
Всем, кто общается с компьютером или другой цифровой техникой, приходилось встречать загадочные записи типа 10FEF, которые кажутся непосвященным каким-то шифром. Что скрывается за этими символами? Оказывается, это просто цифры. Те, которые использует шестнадцатиричная
Системы счисления
Каждый школьник знает или хотя бы где-то слышал, что все цифры, которые мы обычно используем, образуют Это название она носит просто потому, что различных символов в ней всего десять (от 0 до 9). Любое число в нашей привычной системе может быть записано с их помощью. Однако, оказывается, использовать ее удобно бывает далеко не всегда. Например, при обмене информацией между цифровыми устройствами проще всего применять систему счисления, в которой есть только две цифры: «0» — нет сигнала — или «1» — есть сигнал (напряжение или что-то еще). Она называется двоичной. Однако, чтобы описать процессы внутри таких устройств с ее помощью, придется выполнять слишком длинные и трудные для понимания записи. Поэтому была придумана шестнадцатиричная система счисления.
Понятие шестнадцатеричной системы
Почему же для цифровых устройств используется именно система, которая содержит шестнадцать разных символов? Как известно, информация в компьютерах передается в виде байтов, которые обычно содержат 8 бит. А единица данных — машинное слово — включает в себя 2 байта, то есть 16 бит. Таким образом, с помощью шестнадцати разных символов можно описать ту информацию, которая является мельчайшей частицей при обмене. Шестнадцатиричная система счисления включает наши привычные цифры (естественно, от 0 до 9), а также первые буковки (A, B, C, D, E, F). Именно с помощью этих символов принято записывать любую единицу информации. С ними можно производить любые арифметические действия. То есть сложение, вычитание, умножение, деление. Результатом также будет шестнадцатеричное число.
Где применяется
Шестнадцатиричная система используется для записи кодов ошибок. Они могут возникать при работе различных программных продуктов. Например, так кодируются ошибки операционной системы. Каждое число при этом стандартное. Можно выяснить, какая именно ошибка произошла в процессе работы, расшифровав его с помощью инструкции. Также применяются такие символы при написании программ на языках низкого уровня, например ассемблере. Шестнадцатиричная система счисления любима программистами еще и потому, что ее составляющие очень легко могут быть переведены в двоичные, которые являются «родными» для всей цифровой техники. С помощью таких символов описывают также цветовые схемы. Кроме того, абсолютно все файлы в компьютере (и текстовые, и графические, и даже музыкальные или видео) представляются после трансляции в виде последовательности Просматривать исходный удобнее всего как раз в виде шестнадцатеричных символов.
Конечно, любое число можно записать в различных системах счисления. Это и десятичная, и двоичная, и шестнадцатеричная. Чтобы перевести слово из одной из них в другую, следует воспользоваться таким сервисом, как переводчик систем счисления, или сделать это самостоятельно с помощью определенного алгоритма.
Шестнадцатеричная система счисления (также — шестнадцатеричный код) является позиционной системой счисления с целочисленным основанием 16. Иногда в литературе также используется термин hex (произносится «хекс», сокращение от англ. hexadecimal). Цифрами данной системы счисления принято использовать арабские цифры 0—9, а также первые символы латинского алфавита A—F. Буквы соответствуют следующим десятичным значениями:
- * A —10;
- * B —11;
- * C —12;
- * D —13;
- * E — 14;
- * F — 15.
Таким образом, десять арабских цифр вкупе с шестью латинскими буквами и составляют шестнадцать цифр системы.
Кстати, на нашем сайте вы можете перевести любой текст в десятичный, шестнадцатеричный, двоичный код воспользовавшись Калькулятором кодов онлайн .
Применение . Шестнадцатеричный код широко применяется в низкоуровневом программировании, а также в различных компьютерных справочных документах. Популярность системы обоснована архитектурными решениями современных компьютеров: в них в качестве минимальной единицы информации установлен байт (состоящий из восьми бит) — а значение байта удобно записывать с помощью двух шестнадцатеричных цифр. Значение байта может ранжироваться с #00 до #FF (от 0 до 255 в десятичной записи) — другими словами, используя шестнадцатеричный код , можно записать любое состояние байта, при этом не остаётся «лишних» не используемых в записи цифр.
В кодировке Юникод для записи номера символа используется четыре шестнадцатеричных цифры. Запись цвета стандарта RGB (Red, Green, Blue — красный, зелёный, синий) также часто использует шестнадцатеричный код (например, #FF0000 — запись ярко-красного цвета).
Способ записи шестнадцатеричного кода.
Математический способ записи . В математической записи основание системы записывают в десятичном виде в нижнем индексе справа от числа. Десятичную запись числа 3032 можно записать как 3032 10 , в шестнадцатеричной системе данное число будет иметь запись BD8 16 .
В синтаксисе языков программирования . Синтаксис различных языков программирования по-разному устанавливает формат записи числа, использующего шестнадцатеричный код :
* В синтаксисе некоторых разновидностей языка ассемблера используется латинская буква «h», которая ставится справа от числа, например: 20Dh. Если число начинается с латинской буквы, то перед ним ставится ноль, например: 0A0Bh. Это сделано для того, чтобы отличать от констант значения, использующие шестнадцатеричный код ;
* В прочих разновидностях ассемблера, а также в Pascal (и его разновидностях, таких как Delphi) и некоторых диалектах Basic, применяют префикс «$»: $A15;
* В языке разметки HTML, а также в каскадных файлах CSS, для указания цвета в формате RGB с шестнадцатеричной системой записи, используется префикс «#»: #00DC00.
Как перевести шестнадцатеричный код в другую систему?
Перевод из шестнадцатеричной системы в десятичную. Для совершения операции перевода из шестнадцатеричной системы в десятичную, требуется представить исходное число как сумму произведений цифр в разрядах шестнадцатеричного числа на степень основания.
Двоичная СС | шестнадцатеричная СС |
Например, требуется выполнить перевод шестнадцатеричного числа A14: в нём три цифры. Используя правило, запишем его в виде суммы степеней с основанием 16:
A14 16 = 10.16 2 + 1.16 1 + 4.16 0 = 10.256 + 1.16 + 4.1 = 2560 + 16 + 4 = 2580 10
Перевод чисел из двоичной в шестнадцатеричную систему и наоборот.
Для перевода используется таблица тетрад. Чтобы выполнить перевод числа из двоичной в десятичную систему, необходимо произвести разбиение его на отдельные тетрады справа налево, после чего, используя таблицу, выполнить замену каждой тетрады на соответствующую шестнадцатеричную цифру. При этом, если количество цифр не кратно четырём, то необходимо добавить соответствующее количество нулей справа от числа, для того, чтобы общее число двоичных цифр стало кратно четырём.
Таблица тетрад для перевода.
Для перевода из шестнадцатеричной системы в двоичную, необходимо выполнить обратную операцию: выполнить замену каждой цифры на тетраду из таблицы.
Двоичная СС | Восьмеричная СС |
Пример перевода из шестнадцатеричной системы в двоичную : A5E 16 = 1010 0101 1110 = 101001011110 2
Пример перевода из двоичной системы в шестнадцатеричную : 111100111 2 = 0001 1110 0111 = 1E7 16
В этом примере количество цифр в исходном двоичном числе не было равным четырём (9), поэтому были добавлены незначащие нули — общее число цифр стало 12.
Автоматический перевод . Быстрый перевод из шестнадцатеричной системы счисления в одну из трёх популярных систем (двоичную, восьмеричную и десятичную), как и обратный перевод, можно выполнить, используя стандартный калькулятор из комплекта поставки ОС Windows. Откройте калькулятор, выберите в меню Вид -> Программист. В данном режиме можно устанавливать систему счисления, используемую в данный момент (см. меню слева: Hex, Dec, Oct, Bin). При этом изменение текущей системы счисления автоматически производит перевод.
Теперь предстоит совсем легкая прогулка, связанная с шестнадцатеричной системой счисления. В этом случае, надеемся, вы подозреваете и, видимо, справедливо, что у нас должно теперь быть 16 различных цифр.
Но, как мы знаем, традиционных («арабских») цифр всего десять. А требуется шестнадцать. Получается, что не хватает шести знаков.
Замечание
Таким образом, возникает чисто дизайнерская задача по теме «Знаки» — придумать недостающие символы для цифр .
Значит, в свое время специалистам необходимо было придумать какие-нибудь новые знаки. Но когда-то, в начале компьютерной эры, особого выбора в знаках не было. Программисты располагали только знаками цифр и букв. Поэтому они пошли по элементарному пути: взяли первые буквы латинского алфавита в качестве цифр, тем более что исторически это не первый случай (мы уже упоминали, что первоначально вместо цифр многие народы использовали буквы).
Замечание
Надеемся, что всем понятно, почему в этом случае нельзя использовать, например, числа «10», «11», «12» и т. д.? Потому что, если мы говорим о шестнадцатеричной системе счисления, то должно быть шестнадцать цифр , а не чисел .
И десятичное число «10» стали обозначать латинской буквой «А» (точнее, «цифрой А»). Соответственно, дальше идут цифры «В», «С», «D», «Е» и «Р.
Поскольку мы намеревались построить шестнадцатеричную систему, то, начиная с нуля, здесь как раз и получится 16 цифр. Например, цифра «D» — это десятичное число «13», а цифра «F» — это десятичное число «15».
Когда к шестнадцатеричному числу «F» прибавляем единицу, то, поскольку эти цифры у нас кончились, в этом разряде ставим «О», а в следующий разряд переносим единицу, поэтому получается, что десятичное число «16» будет представлено в шестнадцатеричной системе счисления числом «10», т. е. получается «шестнадцатеричная десятка». Соединим десятичные и шестнадцатеричные числа в единую таблицу (табл. 4.5).
Таблица 4.5 . Соответствие десятичных и шестнадцатеричных чисел.
Десятичное число | Шестнадцатеричное число | Десятичное число | Шестнадцатеричное число |
---|---|---|---|
0-9 | 0-9 | 29 | 1D |
10 | А | 30 | 1Е |
11 | В | 31 | 1F |
12 | С | 32-41 | 20-29 |
13 | D | 42-47 | 2A-2F |
14 | Е | 48-255 | 30-FF |
15 | F | 256 | 100 |
16 | 10 | 512 | 200 |
17-25 | 11-19 | 1024 | 400 |
26 | 1А | 1280 | 500 |
27 | 1В | 4096 | 1000 |
28 | 1C |
Шестнадцатеричная система используется, чтобы более компактно записывать двоичную информацию. В самом деле, «шестнадцатеричная тысяча», состоящая из четырех разрядов, в двоичном виде занимает тринадцать разрядов (1000 16 = 1000000000000 2).
При обсуждении систем счисления неоднократно фигурировали «десятки», «сотни» и «тысячи», поэтому необходимо обратить внимание на так называемые «круглые» числа.
Шестнадцатеричная система счисления имеет алфавит, состоящий из 16 цифр:
0, 1, 2, 3, 4, 5, 6, 7, 8, 9, A, b, c, d, e, f.
При записи числа в шестнадцатеричной системе для записи цифр обозначающих числа 10, 11, 12. 13, 14. 15 используются соответственно буквы А, В, С, D, E, F.
Перевод чисел из шестнадцатеричной системы в десятичную
Перевести любое шестнадцатеричное число в десятичное можно по уже известной формуле
Примеры.
АЕ07 16 =10∙16 3 +14∙16 2 +0∙16 1 +7∙16 0 =44551 10 .
100 16 =1∙16 2 +0∙16 1 +0∙16 0 =256 10 .
58 16 =5∙16 1 +8∙16 0 =.88 10 .
2А 16 =2∙16 1 +10∙16 0 =42 10 .
Перевод числа из десятичной системы в шестнадцатеричную осуществляется также, как в двоичную.
Перевод чисел из шестнадцатеричной системы в двоичную и обратно
Перевести любое шестнадцатеричное число в двоичное можно следующим образом. Каждая цифра шестнадцатеричной записи числа записывается четырехзначным двоичным числом — тетрадой . После этого нули, стоящие слева, можно отбросить.
2) 2A= 0010 1010 2 = 101010 2 . | 3) 58 16 = 0101 1000 2 = 1011000 2 . |
И наоборот, перевести любое двоичное число в шестнадцатеричное можно аналогичным образом. Каждые четыре двоичные цифры, считая справа налево, записываются одной шестнадцатеричной цифрой. Эти цифры располагаются также справа налево.
Примеры.
2. 101010 2 = 10 1010 2 = 2A.
3. 1011000 2 = 101 1000 2 = 58 16 .
Восьмеричная система счисления
Восьмеричная система счисления имеет алфавит, состоящий из 8 цифр:
0, 1, 2, 3, 4, 5, 6, 7.
Перевод числа из десятичной системы в восьмеричную и обратно осуществляется по аналогии с переводом в двоичную / из двоичной.
Перевод чисел из восьмеричной системы в двоичную и обратно
Каждая цифра восьмеричной записи числа записывается трехзначным двоичным числом — триадой .
Примеры.
2563 8 = 010 101 110 011 2 =10101110011 2 .
1001101 2 = 001 001 101 2 = 115 8 .
Методические материалы для лабораторного занятия №1
Тема лабораторного занятия: Системы счисления. Измерение информации.
Количество часов: 2.
Примеры с решениями
Перевод из p -ичной системы в 10-ичную. Пусть надо перевести число в некоторой системе счисления в десятичную. Для этого надо представить его в виде
11100110 2 = 1∙2 7 + 1∙2 6 + 1∙2 5 + 0∙2 4 + 0∙2 3 + 1∙2 2 + 1∙2 1 + 0∙2 0 = 128 + 64 + 32 + 4 + 2 = 230 10 .
2401 5 = 2∙5 3 + 4∙5 2 + 0∙5 1 + 1∙5 0 = 250 + 100 + 0 + 1 = 351.
Перевод из 10-ичной системы в p -ичную.
2.1 98 10 → Х 2 .
Делим число на 2. Затем делим неполное частное на 2. Продолжаем до тех пор, пока неполное частное не станет меньше 2, т.е. равным 1.
98: 2 = 49. Остаток — 0 .
49: 2 = 24. Остаток — 1 .
24: 2 = 12. Остаток — 0 .
12: 2 = 6. Остаток — 0 .
6: 2 = 3. Остаток — 0 .
3: 2 = 1 . Остаток — 1 .
Так как последнее неполное частное равно 1, процесс окончен. Записываем все остатки снизу вверх, начиная с последнего неполного частного, и получаем число 1100010. Итак 98 10 = 1100010 2 .
2.2 2391 10 → Х 16 .
Делим число на 16. Затем делим неполное частное на 16. Продолжаем до тех пор, пока неполное частное не станет меньше 16.
2391: 16 = 149. Остаток — 7 .
149: 16 = 9 . Остаток — 5 .
Так как последнее неполное частное (9) меньше 16, процесс окончен. Записываем, начиная с последнего неполного частного, все остатки снизу вверх и получаем число 957. Итак 2391 10 = 957 16 .
2.3 12165 10 → Х 2 .
Если переводить делением в двоичную систему, то получится довольный громоздкий процесс. Можно сначала перевести число в восьмеричную систему, а затем заменять восьмеричные цифры справа налево триадами.
12165 10 = 27605 8 = 010 111 110 000 101 = 10111110000101.
Определение основания системы счисления p .
Один мальчик так написал о себе: «Пальцев у меня 24, на каждой руке по 5, а на ногах 12». Как такое может быть?
Решение. Надо определить основание системы счисления p . Так как мы знаем, что пальцев на ногах всего 10 10 , то 12 p =1∙p +2 = 10 10 . Отсюда получаем уравнение p + 2 = 10 p = 8. Значит, мальчик имел в виду числа в восьмеричной системе. Действительно, всего пальцев 24 8 = 2∙8+4 = 20 10 , а на ногах — 12 8 = 1∙8+2 = 10 10 .
Воспользуйтесь этим методом, если вы не знакомы с шестнадцатеричной системой счисления. Простой интуитивный метод может использовать практически любой человек. Если вам известны различные системы счисления, прочитайте о , который описан ниже.
- Если вы вообще ничего не знаете о шестнадцатеричной системе, начните с изучения основных понятий .
Возведите 16 в степень от 1 до 5 и запишите результаты. Разряд каждой цифры шестнадцатеричного числа является результатом возведения в степень числа 16, так же как разряд каждой цифры десятичного числа является результатом возведения в степень числа 10. Следующий список результатов возведения 16 в различные степени пригодится в процессе преобразования:
- 16 5 = 1048576
- 16 4 = 65536
- 16 3 = 4096
- 16 2 = 256
- 16 1 = 16
- Если конвертируемое десятичное число больше 1048576, возведите 16 в большую степень, а результат добавьте в список.
В списке найдите наибольшее число, которое меньше данного десятичного числа. Запишите данное десятичное число, которое нужно преобразовать в шестнадцатеричное. Посмотрите на список, приведенный выше, и найдите наибольший результат (возведения 16 в степень), который меньше данного десятичного числа.
- Например, нужно преобразовать десятичное число 495 в шестнадцатеричное. В списке выберите число 256.
Разделите десятичное число на выбранный результат возведения 16 в степень. Работайте с целочисленным результатом деления – не обращайте внимания на цифры после десятичной запятой.
- В нашем примере: 495 ÷ 256 = 1,93…, поэтому работайте с числом 1 (это целое частное от деления).
- Полученный результат – это первая цифра шестнадцатеричного числа. В этом случае вы разделили данное десятичное число на 256, поэтому 1 находится в разряде 256-и.
Найдите первый остаток. То есть остаток от деления данного десятичного числа на выбранное число (делитель). Остаток вычисляется так же, как при делении в столбик.
- Умножьте полученное частное на делитель. В нашем примере: 1 х 256 = 256 (то есть 1 в шестнадцатеричном числе представляет 256 по основанию 10).
- Результат умножения вычтите из данного десятичного числа: 495 — 256 = 239 .
Разделите остаток на следующий (по списку) результат возведения 16 в степень. Посмотрите на список с результатами возведения 16 в разные степени. Найдите результат, который находится под результатом, который вы выбрали для предыдущего деления. Разделите остаток на выбранное число, чтобы найти следующую цифру шестнадцатеричного числа (если остаток меньше выбранного числа, следующая цифра равна 0).
- 239 ÷ 16 = 14 . Не обращайте внимания на цифры после десятичной запятой.
- Это вторая цифра шестнадцатеричного числа, которая находится в разряде 16-и. Любое число от 0 до 15 может быть представлено одной шестнадцатеричной цифрой. Полученные цифры будут преобразованы и расставлены в конце этого метода.
Найдите второй остаток. Для этого умножьте полученное частное на делитель, а затем результат умножения вычтите из первого остатка. Второй остаток нужно преобразовать в цифру шестнадцатеричного числа.
- 14 x 16 = 224.
- 239 — 224 = 15, то есть остаток равен 15 .
Повторяйте описанный процесс до тех пор, пока остаток не будет меньше 16. Если остаток равен числу от 0 до 15, он может быть выражен одной шестнадцатеричной цифрой. Эта цифра будет последней цифрой.
- Последней цифрой шестнадцатеричного числа является число 15, которое находится в разряде единиц.
Преобразуйте полученные цифры и запишите ответ. Вы нашли все цифры шестнадцатеричного числа. Но они записаны в десятичной системе счисления. Чтобы преобразовать каждую цифру по основанию 16, воспользуйтесь следующими инструкциями:
- Цифры от 0 до 9 не меняются.
- 10 = A; 11 = В; 12 = C; 13 = D; 14 = E; 15 = F
- В нашем примере вы получили цифры (1)(14)(15). То есть шестнадцатеричное число запишется так: 1EF .
Проверьте ответ. Это легко сделать, если знать основы шестнадцатеричной системы счисления. Преобразуйте каждую цифру шестнадцатеричного числа в цифру по основанию 10, а затем умножьте на результат возведения 16 в определенную степень, которая соответствует позиции цифры. В нашем примере:
- 1EF → (1)(14)(15)
- Работайте с цифрами справа налево. 15 находится в разряде единиц: 16 0 = 1, поэтому 15 х 1 = 15.
- Следующая цифра находится в разряде 16-и: 16 1 = 16, поэтому 14 x 16 = 224.
- Следующая цифра находится в разряде 256-и: 16 2 = 256, поэтому 1 x 256 = 256.
- Сложите найденные результаты: 256 + 224 + 15 = 495, то есть получилось исходное десятичное число.
Вконтакте
Одноклассники
Google+
Шестнадцатеричная система счисления
Для написания программ на Ассемблере, необходимо разобраться с шестнадцатеричной системой счисления. Ничего сложного в ней нет. Мы используем в жизни десятичную систему. Уверен, что Вы все ее знаете, поэтому я постараюсь объяснить шестнадцатеричную систему, проводя аналогию с десятичной.
Итак, в десятичной системе если мы к какому-нибудь числу справа добавим нуль, то это число увеличится в 10 раз. Например: 1 х 10 = 10; 10 х 10 = 100; 100 х 10 = 1000 и т.д. В этой системе мы используем цифры от 0 до 9, т.е. десять разных цифр (собственно, поэтому она и называется десятичная).
В шестнадцатеричной системе мы используем, соответственно, шестнадцать «цифр». Я специально написал слово «цифр» в кавычках, т.к. в ней используются не только цифры. Да и в самом деле как так? Объясняю: от 0 до 9 мы считаем так же, как и в десятичной, а вот дальше будет так: A, B, C, D, E, F. Число F, как не трудно посчитать, будет равно 15 в десятичной системе (см. Таблицу 1).
Таблица 1. Десятичная и шестнадцатеричная системы счисления.
Десятичное число |
0 1 2 3 4 … 8 9 10 11 12 13 14 15 16 17 |
Шестнадцатеричное число |
0 1 2 3 4 … 8 9 A B C D E F 10 11 |
Десятичное число |
26 27 28 29 30 … 158 159 160 161 162 … 254 255 256 257 |
Шестнадцатеричное число |
1A 1B 1C 1D 1E … 9E 9F A0 A1 A2 … FE FF 100 101 |
Т.о., если мы к какому-нибудь числу в шестнадцатеричной системе добавим справа нуль, то это число увеличится в 16 раз.
Пример 1
- 1 х 16 = 10;
- 10 х 16 = 100;
- 100 х 16 = 1000 и т.д.
Вы смогли отличить в Примере 1 шестнадцатеричные числа от десятичных? А из этого ряда: 10, 12, 45, 64, 12, 8, 19? Это могут быть как шестнадцатеричные, так и десятичные. Для того, чтобы не было путаницы, и компьютер смог бы однозначно отличить одни числа от других, в Ассемблере принято после шестнадцатеричного числа ставить символ h или H (H - это сокращение от англ. hexadecimal (шестнадцатеричное). Для краткости его иногда называют просто Hex). А после десятичного ничего не ставить. Т.к. числа от 0 до 9 в обоих системах имеют одинаковые значения, то числа, записанные как 5 и 5h одно и тоже.
Т.о. Пример 1 (см. выше) правильнее записать шестнадцатеричные числа будет так:
- 1 х 16 = 10h;
- 10h х 16 = 100h;
- 100h х 16 = 1000h и т.д.
Либо так:
- 1h х 10h = 10h;
- 10h х 10h = 100h;
- 100h х 10h = 1000h
Для чего нужна шестнадцатеричная система — мы рассмотрим в последующих главах. А в данный момент для нашего примера программы, который будет рассмотрен ниже, нам необходимо знать о существовании шестнадцатеричных чисел.
Итак, подведем итог. Шестнадцатеричная система счисления состоит из 10 цифр (от 0 до 9) и 6 букв латинского алфавита (A, B, C, D, E, F). Если к какому-нибудь числу в шестнадцатеричной системе добавим справа нуль, то это число увеличится в 16 раз. Очень важно уяснить данную тему, так как мы будем постоянно использовать ее при написании программ.
Теперь немного о том, как я буду строить примеры на Ассемблере. Не совсем удобно приводить их сплошным текстом в книге, поэтому сперва будет идти сам код программы с пронумерованными строками, а сразу же после него — объяснения и примечания.
Примерно так:
(01)mov ah,9
(02)mov al,8
…
(15)mov dl,5Ah
Перевод чисел в различных системах счисления
Перевод чисел в различных системах счисленияПеревод чисел в различных системах счисления.
Для перевода числа из десятичной системы счисления в систему счисления с другим основанием поступают следующим образом:
а) Для перевода целой части числа его делят нацело на основание системы, фиксируя остаток. Если неполное частное не равно нулю продолжают делить его нацело. Если равно нулю остатки записываются в обратном порядке.
б) Для перевода дробной части числа ее умножают на основание системы счисления, фиксируя при этом целые части полученных произведений. Целые части в дальнейшем умножении не участвуют. Умножение производиться до получения 0 в дробной части произведения или до заданной точности вычисления.
в) Ответ записывают в виде сложения переведенной целой и переведенной дробной части числа.
Пример: перевод чисел из десятичной системы счисления в двоичную систему счисления.
Перевести число 75,375 в двоичную систему счисления.
а) переведем в двоичную систему целую часть — 75
75 : 2 = 37 ( 1 )
37 : 2 = 18 ( 1 )
18 : 2 = 9 ( 0 )
9 : 2 = 4 ( 1 )
4 : 2 = 2 ( 0 )
2 : 2 = 1 ( 0 )
1 : 2 = 0 ( 1 )
Закончив деление, запишем остатки в обратном порядке, и получим искомый результат:
75=10010112
б) переведем в двоичную систему дробную часть — 0,375
0,375
2
0,750
2
1,500
2
1,000
Выделенные числа запишем в естественном порядке и получим дробное число в двоичной системе счисления:
0,375 = 0,0112
в) получив целую и дробную части числа в двоичном виде (75=10010112 и 0,375 = 0,0112 ) можем сделать вывод:
75,375=75+0,375 = 10010112+0,0112=1001011,0112, значит 75,375=1001011,0112
Пример: перевод чисел из десятичной системы счисления в шестнадцатеричную систему счисления.
Представить десятичное число 157,23 в шестнадцатеричной системе счисления. Целая часть числа равна 157, дробная — 0,23.
а) переведем в двоичную систему целую часть — 157
157 : 16 = 9 (13 или D)
9 : 16 = 0 ( 9 )
Закончив деление, запишем остатки в обратном порядке, и получим искомый результат:
157=9D 16
а) переведем в двоичную систему дробную часть — 0,23.
Результат умножения 0,23 на 16 равен 3,68. Целая часть этого числа равна 3, значит первый коэффициент дробной части равен 3. Дробная часть равна 0,68. Снова умножим ее на основание системы: 0,68*16=10,88. Целая часть равна 10 или в шестнадцатеричной системе А. Дробная часть равна 0,88, она опять умножается на 16 и так далее.
Выпишем весь процесс:
0,23 * 16 = 3,68 ( 3 )
0,68 * 16 = 10,88 ( А )
0,88 * 16 = 14,08 ( Е )
0,08 * 16 = 1,28 ( 1 )
0,28 * 16 = 4,48 ( 4 )
0,48 * 16 = 7,68 ( 7 )
0,68 * 16 = 10,88 ( А )
0,88 * 16 = 14,08 ( Е )
0,08 * 16 = 1,28 ( 1 )
0,28 * 16 = 4,48 ( 4 )
0,48 * 16 = 7,68 ( 7 )
0,68 * 16 = 10,88 ( А )
0,88 * 16 = 14,08 ( Е )
Замечаем, что последовательность чисел 0,68; 0,88; 0,08; 0,28; 0,48 повторилась уже 2 раза и начинается в третий раз. Получается бесконечная шестнадцатеричная дробь в которой период (бесконечно повторяемая последовательность цифр) заключен в скобки:
157,23=9D,3(АЕ147)16
Для перевода числа в десятичную систему счисления из системы счисления с другим основанием каждый коэффициент переводимого числа умножается на основание системы в степени соответствующей этому коэффициенту и полученные результаты складываются.
Пример: перевод чисел из двоичной системы счисления в десятичную систему счисления
Перевести число 1001011,0112 в десятичную систему счисления
1001011,0112 = 1*26+0*25+0*24+1*23+0*22+1*21+1*20+0*2-1+1*2-2+1*2-3 =64+8+2+1+0,25+0,125=75,375
Двоичная система проста, так как использует две цифры, но громоздка. В десятичной хранить числа в памяти возможно, но сложен перевод из десятичной в двоичную и обратно и занимает много времени. Необходима система счисления компактнее двоичной, но с более простым переводом.
23 = 8 0, 1, 2, 3, 4, 5, 6, 7.
Для перевода из двоичной системы счисления в восьмеричную необходимо разбить данное двоичное число вправо и влево от запятой на триада ( три цифры ) и представить каждую триаду соответствующим восьмеричным кодом. При невозможности разбиения на триады допускается добавление нулей слева в целой записи числа и справа в дробной части числа. Для обратного перевода каждую цифру восьмеричного числа представляют соответствующей триадой двоичного кода.
Десятичная система счисления |
Двоичная система счисления |
Восьмеричная система счисления |
Шестнадцатеричная система счисления |
|
Триады (0-7) |
Тетрады (0-15) |
|||
0 |
000 |
0000 |
00 |
0 |
1 |
001 |
0001 |
01 |
1 |
2 |
010 |
0010 |
02 |
2 |
3 |
011 |
0011 |
03 |
3 |
4 |
100 |
0100 |
04 |
4 |
5 |
101 |
0101 |
05 |
5 |
6 |
110 |
0110 |
06 |
6 |
7 |
111 |
0111 |
07 |
7 |
8 |
|
1000 |
10 |
8 |
9 |
|
1001 |
11 |
9 |
10 |
|
1010 |
12 |
A |
11 |
|
1011 |
13 |
B |
12 |
|
1100 |
14 |
C |
13 |
|
1101 |
15 |
D |
14 |
|
1110 |
16 |
E |
15 |
|
1111 |
17 |
F |
16 |
10000 |
20 |
10 |
Пример: перевод чисел из двоичной системы счисления в восьмеричную систему счисления.
Переведем число 1001011,0112 в восьмеричную систему счисления. Разобьем данное число на триады, приписав слева недостающие нули:
001 001 011 , 011
1 1 3 , 3
и заменим каждую триаду соответствующим восьмеричным кодом (см. таблицу). Можем сделать вывод:
1001011,0112 = 113,38
Пример: перевод чисел из восьмеричной системы счисления в двоичную систему счисления.
Переведем число 347,258 в двоичную систему счисления. Каждую цифру восьмеричного числа заменим соответствующей триадой (см. таблицу).
3 4 7 , 2 5
011 100 111 , 010 101
Запишем ответ, удалив нули слева в записи числа:
347,258 = 11100111,0101012
Восьмеричная система компактнее двоичной и с более простым переводом чисел, однако, современные требования к ЭВМ заставили создавать шестнадцатеричную систему счисления.
24 = 16 1, 2, 3, 4, 5, 6, 7, 8, 9, A, B, C, D, E, F.
Правило перевода из двоичной системы счисления в шестнадцатеричную: разбить двоичное число вправо и влево от запятой на тетрады ( по 4 цифры ) и представить каждую тетраду соответствующим шестнадцатеричным кодом. При невозможности разбиения на тетрады допускается добавление нулей слева в целой записи числа и справа в дробной части числа. Для обратного перевода каждую цифру шестнадцатеричного числа представляют тетрадой двоичного кода.
Пример: перевод чисел из двоичной системы счисления в шестнадцатеричную систему счисления.
Переведем число 1001011,0112 в шестнадцатеричную систему счисления. Разобьем данное число на тетрады, приписав слева в целой части, и справа в дробной части недостающие нули:
0100 1011, 0110
4 В , 6
и заменим каждую тетраду соответствующим шестнадцатеричным кодом (см. таблицу). Можем сделать вывод:
1001011,0112 = 4В,616
Пример: перевод чисел из шестнадцатеричной системы счисления в двоичную систему счисления.
Переведем число А4F,C516 в двоичную систему счисления. Каждую цифру шестнадцатеричного числа заменим соответствующей тетрадой (см. таблицу).
A 4 F , C 5
1010 0100 1111 , 1100 0101
Запишем ответ, удалив нули слева в записи числа:
A4F,C516 = 101001001111,110001012
В МЕНЮ
Используются технологии uCoz
|
Системы счисления
Что это такое?
Есть много способов для представления одного и того же числового значения. В давние времена люди использовали палочки для подсчета. Позднее научились рисовать палочки на земле и в конечном счете на бумаге. Так что число 5 вначале представлялось как: | | | | | (пять палочек).Еще позднее римляне начали использовать различные символы для большого количества палочек:| | | означало три палочки, а V означало пять палочек, и наконец X использовалось для представления 10-ти палочек!
Использование палочек для счета было хорошей идеей для того времени. А использование символов вместо реальных палочек было еще лучше. Одним из наиболее удобных современных способов представления чисел является десятичная система. Почему? Потому что она использует основное свое достижение — идею использования символа для подсчета ничего. Около 1500 лет назад в Индии ноль (0) был впервые использован как число! Позднее он был использован на Ближнем Востоке как арабский sifr. И наконец, представлен на западе как латинский zephiro. Вскоре вы увидите, какое большое значение имеет эта идея во всех современных системах счисления.
Десятичная система
Большинство людей сегодня используют десятичное представление числа. В десятичной системе 10 цифр:0, 1, 2, 3, 4, 5, 6, 7, 8, 9
Этими цифрами можно представить любое значение, например:
754.
Значение формируется путем суммирования всех цифр, умноженных на основание (в нашем случае основание равно 10, т.к. в десятичной системе 10 цифр) в степени, равной позиции цифры (отсчет ведется с нуля):
Позиция каждой цифры — очень важный фактор! Например, если вы поместите «7» в конец:
547
то это будет уже другое значение:
Важное замечание: любое число в нулевой степени равно единице,
даже ноль в нулевой степени равен 1:
Двоичная система
Компьютеры не такие умные, как люди (во всяком случае пока). Легко сделать электронную машину с двумя состояниями: включено и выключено, или 1 и 0.Компьютеры используют двоичную систему, которая использует всего две цифры:
0, 1
И поэтому основание в двоичной системе равно 2.
Каждая цифра в двоичном числе называется БИТ, 4 бита — это ПОЛУБАЙТ, 8 битов это БАЙТ, два байта — это СЛОВО, два слова — это ДВОЙНОЕ СЛОВО (используется редко):
В конец двоичного числа принято добавлять букву «b». Таким образом мы можем определить, что 101b — это двоичное число, которое соответствует десятичному значению 5.
Двоичное число 10100101b эквивалентно десятичному значению 165:
Шестнадцатиричная система
Шестнадцатиричная система использует 16 цифр:0, 1, 2, 3, 4, 5, 6, 7, 8, 9, A, B, C, D, E, F
И поэтому основание в шестнадцатиричной системе равно 16.
Шестнадцатиричные числа являются компактными и легкими для чтения.
Их легко преобразовать в двоичную систему и наборот. Каждый полубайт
(4 бита) можно преобразовать в шестнадцатиричную цифру, пользуясь этой таблицей:
|
Принято в конец шестнадцатиричного числа добавлять букву «h»,
таким образом мы можем определить, что 5Fh — это шестнадцатиричное число,
которому соответствует десятичное значение 95.
Мы также добавляем «0» (ноль) в начало шестнадцатиричного числа,
если оно начинается с буквы (A..F), например 0E120h.
Шестнадцатиричное число 1234h эквивалентно десятичному 4660:
Преобразование значений десятичной системы в другие
Чтобы преобразовать число из десятичной системы в какую-либо другую, необходимо выполнить целое деление десятичного значения на основание нужной системы счисления. Получим результат и остаток. Затем будем делить результат на основание системы, пока результат не будет равен нулю.Остатки используются для представления значения в новой системе счисления.
Давайте преобразуем число 39 (основание 10) в шестнадцатиричную систему (основание 16):
Вы видите, что мы получили шестнадцатиричное число 27h.
Все остатки в этом примере меньше 10, поэтому мы не используем буквы.
Здесь приведен пример перевода числа с большим количеством цифр:
Давайте преобразуем десятичное число 43868 в шестнадцатиричную форму:
Результат получаем такой: 0AB5Ch, используя описанную выше таблицу для преобразования остатков больше 9 в соответствующую букву.
Используя тот же принцип мы можем преобразовать число в двоичную форму (используя 2 как делитель), или преобразовать шестнадцатиричное число в двоичное число, используя описанную выше таблицу:
Вы видите, что мы получили следующее двоичное число: 1010101101011100b
Числа со знаком
Нет никакой уверенности в том, каким является шестнадцатиричное число 0FFh — отрицательным или положительным. Оно может быть представлено двумя десятичными значениями: «255» или «— 1«.8 бит можно использовать для создания 256 комбинаций (включая ноль), поэтому мы просто предполагаем, что первые 128 комбинаций (0..127) будут представлять положительные числа, а следующие 128 комбинаций (128..256) будут представлять отрицательные числа.
Чтобы получить число «— 5«, мы должны вычесть 5 из максимально возможного числа комбинаций (256). Так мы получим: 256 — 5 = 251.
Использование этого способа для представления отрицательных чисел имеет
определенный смысл. В математике, если вы прибавите «— 5» к «5«,
вы должны получить ноль.
То же самое случается, когда процессор складывает два байта: 5 и 251.
Результат превышает значение 255, поэтому из-за переполнения
процессор получает ноль!
Когда используется комбинация 128..256, то старший бит всегда равен 1. Это используется для определения знака.
Тот же самый принцип используется для слов (16-ти битовых значений). С шестнадцатью битами можно создать 65536 комбинаций, первые 32768 комбинаций (0..32767) используются для представления положительных чисел, а следующие 32768 комбинаций (32767..65535) представляют отрицательные числа.
В Emu8086 имеются некоторые удобные инструменты для преобразования чисел и вычисления любых числовых выражений. Все их можно увидеть, выбрав пункт меню Math:
Number Convertor — преобразователь чисел позволяет вам преобразовывать числа из любой системы в любую систему. Просто напечатайте значение в любом текстовом поле и это значение будет автоматически преобразовано во все другие системы. Вы можете работать как с 8-ми битовыми, так и с 16-ти битовыми значениями.
Expression Evaluator — вычисление выражений может быть использовано
для вычислений выражений, в котороых имеются числа, представленные в
различных системах счисления, и преобразования чисел из одной системы в другую.
Напечатайте выражение и нажмите ENTER. Результат появится в выбранной системе счисления.
Вы можете работать со значениями до 32 битов. Если установлен
флажок Signed, то программа будет считать все значения
знаковыми (+ или -), кроме десятичных чисел и двойных слов.
Двойное слово всегда расценивается как знаковое значение, поэтому 0FFFFFFFFh преобразуется в -1.
Например, вы хотите вычислить: 0FFFFh * 10h + 0FFFFh
(максимальное местоположение памяти, доступное процессору 8086).
Если вы установите флажки Signed и Word, вы получите
-17 (потому что выражение будет вычислено
как (-1) * 16 + (-1) . исключающее ИЛИ.
| логическое ИЛИ.
Двоичные числа должны иметь суффикс «b«, например:
00011011b
Шестнадцатиричные числа должны иметь суффикс «h«, и начинаться с нуля
если первая цифра — это буква (A..F), например:
0ABCDh
Восмеричные (основа 8) числа должны иметь суффикс «o«, например:
77o
>>> Следующий урок >>>
Simple English Wikipedia, бесплатная энциклопедия
Шестнадцатеричная система счисления , часто сокращаемая до «шестнадцатеричная» , представляет собой систему счисления, состоящую из 16 символов (основание 16). Стандартная система счисления называется десятичной (основание 10) и использует десять символов: 0,1,2,3,4,5,6,7,8,9. В шестнадцатеричном формате используются десятичные числа и шесть дополнительных символов. Числовых символов, представляющих значения больше девяти, нет, поэтому используются буквы английского алфавита, в частности A, B, C, D, E и F.Шестнадцатеричный A = десятичный 10, а шестнадцатеричный F = десятичный 15.
Люди в основном используют десятичную систему счисления. Вероятно, это потому, что у людей на руках десять пальцев. Однако у компьютеров есть только включение и выключение, называемое двоичной цифрой (или для краткости битом). Двоичное число — это просто строка из нулей и единиц: например, 11011011. Для удобства инженеры, работающие с компьютерами, обычно группируют биты вместе. Раньше, например, в 1960-х годах, они группировали по 3 бита за раз (подобно тому, как большие десятичные числа сгруппированы по тройкам, например, число 123 456 789).Три бита, каждый из которых включен или выключен, могут представлять восемь чисел от 0 до 7: 000 = 0; 001 = 1; 010 = 2; 011 = 3; 100 = 4; 101 = 5; 110 = 6 и 111 = 7. Это называется восьмеричным.
По мере того, как компьютеры становились больше, было удобнее группировать биты по четыре вместо трех. Это удваивает числа, которые будет представлять символ; он может иметь 16 значений вместо восьми. Hex = 6 и Decimal = 10, поэтому он называется шестнадцатеричным. На компьютерном жаргоне четыре бита составляют полубайт (иногда пишется полубайт ).Полубайт — это одна шестнадцатеричная цифра, записанная с использованием символа 0-9 или A-F. Два полубайта составляют байт (8 бит). В большинстве компьютерных операций используется байт или кратное байту (16 бит, 24, 32, 64 и т. Д.). Шестнадцатеричный код упрощает запись этих больших двоичных чисел.
Чтобы избежать путаницы с десятичной, восьмеричной или другими системами счисления, шестнадцатеричные числа иногда записываются с буквой «h» после или «0x» перед числом. Например, 63h и 0x63 означают 63 в шестнадцатеричном формате.
Шестнадцатеричная система счисления похожа на восьмеричную систему счисления (основание 8), поскольку каждую из них можно легко сравнить с двоичной системой счисления.В шестнадцатеричном формате используется четырехбитное двоичное кодирование. Это означает, что каждая цифра в шестнадцатеричном формате совпадает с четырьмя цифрами в двоичном формате. Octal использует трехбитную двоичную систему.
В десятичной системе первая цифра — это позиция , единица, , следующая цифра слева — позиция десятков , , следующая — позиция , сотня, и т. Д. В шестнадцатеричной системе каждая цифра может иметь 16 значений. , а не 10. Это означает, что у цифр — это место , у — шестнадцать — место , а следующая — это 256 — это место .Таким образом, 1h = 1 десятичный, 10h = 16 десятичный и 100h = 256 в десятичном.
Примеры значений шестнадцатеричных чисел, преобразованных в двоичные, восьмеричные и десятичные.
|
Двоичное в шестнадцатеричное [изменить | изменить источник]
Для изменения числа с двоичного на шестнадцатеричный используется метод группировки.Двоичное число разделено на группы по четыре цифры, начиная справа. Затем эти группы преобразуются в шестнадцатеричные числа, как показано на приведенной выше диаграмме для шестнадцатеричных чисел от 0 до F. Для перехода с шестнадцатеричного числа выполняется обратное. Каждая шестнадцатеричная цифра заменяется двоичной, и группировка обычно удаляется.
Двоичный | Группы | шестигранник | |||
---|---|---|---|---|---|
01100101 | 0110 | 0101 | 65 | ||
010010110110 | 0100 | 1011 | 0110 | 4B6 | |
1101011101011010 | 1101 | 0111 | 0101 | 1010 | D75A |
Когда количество битов в двоичном числе не кратно 4, оно дополняется нулями, чтобы сделать это так.Примеры:
- двоичный 110 = 0110, что составляет 6 Hex.
- в двоичном формате 010010 = 00010010, что составляет 12 шестнадцатеричных чисел.
Шестнадцатеричное в десятичное [изменить | изменить источник]
Существует два распространенных способа преобразования числа из шестнадцатеричного в десятичное.
Первый метод чаще всего выполняется при ручном преобразовании:
- Используйте десятичное значение для каждой шестнадцатеричной цифры. Для 0–9 это то же самое, но A = 10, B = 11, C = 12, D = 13, E = 14 и F = 15.
- Сохраняйте сумму преобразованных чисел на каждом шаге ниже.
- Начать с наименее значащей шестнадцатеричной цифры. Это цифра на правом конце. Это будет первый предмет в сумме.
- Возьмем вторую наименьшую значащую цифру. Это рядом с цифрой на правом конце. Умножьте десятичное значение цифры на 16. Добавьте это к сумме.
- Сделайте то же самое для третьей младшей значащей цифры, но умножьте ее на 16 2 (то есть на 16 в квадрате или 256).Добавьте это к сумме.
- Продолжайте для каждой цифры, умножая каждое место на другую степень 16. (4096, 65536 и т. Д.)
Расположение | ||||||
---|---|---|---|---|---|---|
6 | 5 | 4 | 3 | 2 | 1 | |
Значение | 1048576 (16 5 ) | 65536 (16 4 ) | 4096 (16 3 ) | 256 (16 2 ) | 16 (16 1 ) | 1 (16 0 ) |
Следующий метод чаще используется при программном преобразовании числа.Ему не нужно знать, сколько цифр имеет число до его начала, и оно никогда не умножается более чем на 16, но на бумаге оно выглядит длиннее.
- Используйте десятичное значение для каждой шестнадцатеричной цифры. Для 0–9 это то же самое, но A = 10, B = 11, C = 12, D = 13, E = 14 и F = 15.
- Сохраняйте сумму преобразованных чисел на каждом шаге ниже.
- Начните со старшей цифры (цифра в крайнем левом углу). Это первая позиция в сумме.
- Если существует другая цифра, умножьте сумму на 16 и добавьте десятичное значение следующей цифры.
- Повторяйте вышеуказанный шаг до тех пор, пока цифры не исчезнут.
Пример: 5Fh и 3425h в десятичной системе, метод 1
|
|
Пример: 5Fh и 3425h в десятичной системе, метод 2
|
|
Шестнадцатеричные числа
Шестнадцатеричное число основано на числе 16
16 различных значений
Имеется 16 шестнадцатеричных цифр.Они такие же, как десятичные цифры до 9, но есть буквы A, B, C, D, E и F вместо десятичных чисел от 10 до 15:
Шестнадцатеричный: | 0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | А | B | С | D | E | F |
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
Десятичный: | 0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 |
Таким образом, одна шестнадцатеричная цифра может отображать 16 различных значений вместо обычных 10.
Подсчет
Выберите «Шестнадцатеричный» ниже и посмотрите, как он подсчитывает:
После того, как позиция «Единицы» заполнена (после F ), они начинаются с 0 , и мы добавляем 1 к следующей позиции слева (чтобы показать 1 лот из 16).
И после эта позиция достигает F , мы делаем то же самое, и так далее.
По мере продвижения влево каждое числовое место будет 16 раз больше .
Пример: какое десятичное значение шестнадцатеричного числа «D1CE»
= 53 248 + 256 + 192 + 14
= 53 710 в десятичной системе счисления
(Протестируйте его в преобразователе двоично-десятичного числа в шестнадцатеричный.)
Дело!
Пример: 2E6.A3
Это 2 × 16 × 16 + 14 × 16 + 6 + 10/16 + 3 / (16 × 16)
= 742,63671875 в десятичном формате
Прочтите ниже, чтобы узнать, почему
Цифры можно размещать слева или справа от точки, чтобы отображать значения больше единицы или меньше единицы:
Число слева от точки
целое число. По мере продвижения влево каждое числовое место будет 16 раз больше . | |
Первая цифра справа от точки означает шестнадцатых. (1/16). По мере продвижения вправо каждое число ставит в 16 раз меньше (одна шестнадцатая больше). |
Дополнительные примеры
Пример 1: Что такое 4B5 (шестнадцатеричный)?- «4» находится в позиции «16 × 16», то есть 4 × 16 × 16
- Буква «B» (11) находится в положении «16», что означает 11 × 16
- «5» находится в позиции «1», что означает 5.
- Ответ: 4B5 = 4 × 16 × 16 + 11 × 16 + 5 (= 1205) в десятичном формате
- Слева стоит цифра «2», то есть целое число. часть.
- Цифра 3 находится в позиции «шестнадцатая», что означает «3». шестнадцатая «, или 3/16
- Итак, 2.3 — это «2 и 3 шестнадцатые» (= 2,1875 в десятичной системе)
Слово «шестнадцатеричное»
Слово «шестнадцатеричный» означает «основанный на 16». (От греческого hexa: «шесть» и латинского decima : «десятая часть» ).
Шестнадцатеричный преобразователь в двоичный — w3resource
Шестнадцатеричное число:
[Введите шестнадцатеричное число, например F, в следующее поле и нажмите кнопку «Преобразовать». ]
Двоичный номер:
Преобразование: шестнадцатеричное в двоичное
Шестнадцатеричная система счисления:
В математике и вычислительной технике шестнадцатеричная система (также основание 16 или шестнадцатеричное) — это позиционная система счисления с основанием 16.Он использует шестнадцать различных символов, чаще всего символы 0–9 для представления значений от нуля до девяти и A, B, C, D, E, F (или, альтернативно, a, b, c, d, e, f) для представления значений. без десяти пятнадцать.
Двоичная система счисления:
В математике и цифровой электронике двоичное число — это число, выраженное в двоичной системе счисления или системе счисления с основанием 2, которое представляет числовые значения с использованием двух разных символов: обычно 0 (ноль) и 1 (единица). Система с основанием 2 — это позиционная система счисления с основанием 2.Благодаря простой реализации в цифровых электронных схемах с использованием логических вентилей, двоичная система используется внутри почти всех современных компьютеров и компьютерных устройств. Каждая цифра называется битом.
Таблица преобразования шестнадцатеричного числа в двоичное
Шестнадцатеричный | Двоичный | ||
---|---|---|---|
0 | 0000 | ||
1 | 0001 | ||
2 | 0010 | ||
3 | 0011 | ||
4 | 0100 | ||
510 | |||
510 | 6 | 0110 | |
7 | 0111 | ||
8 | 1000 | ||
9 | 1001 | ||
A | 1010 | ||
B | 1 101142 | 1100 | |
D | 1101 | ||
E | 1110 | ||
F | 1111 |
Предыдущая: Преобразовать десятичную в восьмеричную
Следующая: Преобразовать шестнадцатеричное в десятичное
Шестнадцатеричный калькулятор
Шестнадцатеричное вычисление — сложение, вычитание, умножение или деление
Преобразовать шестнадцатеричное значение в десятичное
Преобразовать десятичное значение в шестнадцатеричное
Связанный двоичный калькулятор | Калькулятор IP-подсети
Шестнадцатеричная система счисления (шестнадцатеричная) практически идентична десятичной и двоичной.Вместо использования основания 10 или 2 соответственно, он использует базу 16. В шестнадцатеричном формате используются 16 цифр, включая 0-9, как и в десятичной системе, но также используются буквы A, B, C, D, E и F (эквивалент a, b, c, d, e, f) для обозначения чисел 10-15. Каждая шестнадцатеричная цифра представляет собой 4 двоичных числа, называемых полубайтами, что упрощает представление больших двоичных чисел. Например, двоичное значение 1010101010 может быть представлено как 2AA в шестнадцатеричном формате. Это помогает компьютерам сжимать большие двоичные значения таким образом, чтобы их можно было легко преобразовать между двумя системами.
Ниже приведены некоторые типичные преобразования шестнадцатеричных, двоичных и десятичных значений:
Шестнадцатеричное / десятичное преобразование
Шестнадцатеричный | Двоичный | Десятичный |
0 | 0 | 0 |
1 | 1 | 1 |
2 | 10 | 2 |
3 | ||
4 | 100 | 4 |
5 | 101 | 5 |
6 | 110 | 6 |
7 | 111 | 7 |
8 | 1000 | 8 |
9 | 1001 | 9 |
A | 1010 | 10 |
B | 1011 | 11 |
1011 | 11 | |
12 | ||
D | 1101 | 13 |
E | 1110 | 14 |
F | 1111 | 15 |
14 | 10100 | 20 |
3F | 111111 | 63 |
Преобразование десятичных и шестнадцатеричных чисел требует понимания значений разрядов в различных системах счисления .Более подробное обсуждение доступно на странице двоичного калькулятора. Обратите внимание, что преобразование между десятичным и шестнадцатеричным числами очень похоже на преобразование между десятичным и двоичным числами. Возможность выполнить преобразование одного из них должно сделать другое относительно простым. Как упоминалось ранее, шестнадцатеричные функции используют основание 16. Это означает, что для значения 2AA каждое разрядное значение представляет степень 16. Начиная справа, первая буква «A» представляет разряд «единиц», или 16 0 . Вторая буква «A» справа представляет 16 1 , а 2 — 16 2 .Помните, что «A» в шестнадцатеричном формате эквивалентно 10 в десятичном. Зная эту информацию, можно преобразовать шестнадцатеричное в десятичное, как показано ниже:
EX: | 2AA = (2 × 16 2 ) + (A × 16 1 ) + (A × 16 0 ) |
= (2 × 256) + (10 × 16) + (10 × 1) | |
= 512 + 160 + 10 = 682 |
Преобразование из десятичного числа в шестнадцатеричное немного сложнее, но использует те же концепции.См. Шаги и пример ниже. Для понимания процесса важно проработать приведенный пример в сочетании с перечисленными шагами:
- Найдите наибольшую степень числа 16, которая меньше или равна числу, которое нужно преобразовать, которое будет обозначаться как X.
- Определите, сколько раз степень 16, найденная на шаге 1, переходит в X, и запишите это число.
- Умножьте число, полученное на шаге 2, на степень 16 и вычтите это значение из X.Это новое значение будет называться Y.
- Обратите внимание, что число, найденное на шаге 2, будет значением, записанным в разряде для найденной степени 16. Если, например, наибольшая степень числа 16 оказалась равной 16 4 , а число на шаге 2 оказалось равным 3, шестнадцатеричное значение будет иметь число 3 в своем значении разряда 16 4 : 3qrst, где qrst представляет значения разряда от 16 0 до 3 .
- Повторите шаги 1-3, используя Y в качестве нового начального значения.Продолжайте процесс до тех пор, пока 16 не будет больше оставшегося значения, и присвойте остаток разряду 16 0 .
- Присвойте каждому из значений, найденных на каждой итерации шага 2, соответствующее значение разряда, чтобы определить шестнадцатеричное значение.
EX: | Преобразовать десятичное 1500 в шестнадцатеричное | |
(1) | Наибольшая степень = 16 2 = 256 | |
(2) | 256 × 5 = 1280, так (5 × 16 2 ) | |
(3) | 1500 — 1280 = 220 | |
(4) | 16 × 13 = 208, так (13 × 16 1 ) | |
(5) | 220-208 = 12 | |
(6) | 16 больше 12, поэтому 12 — это значение в 16 0 значение разряда | |
(7) | 1500 = (5 × 16 2 ) + (13 × 16 1 ) + (12 × 16 0 ) | |
(8) | Помните, что 10 -15 имеют буквенные цифры В шестнадцатеричном формате: 13 = D и 12 = C | |
(9) | То есть re шестнадцатеричное значение 1500: 5DC |
Преобразование из шестнадцатеричного в десятичное использует те же принципы, но, возможно, проще.Умножьте каждую цифру в шестнадцатеричном значении на соответствующее ей разрядное значение и найдите сумму каждого результата. Процесс одинаков, независимо от того, содержит ли шестнадцатеричное значение буквенные цифры или нет.
EX: | Преобразование шестнадцатеричного 1024 в десятичное | |
(1) | (1 × 16 3 ) + (0 × 16 2 ) + (2 × 16 1 ) + (4 × 16 0 ) | |
(2) | 4096 + 0 + 32 + 4 = 4132 |
Шестнадцатеричное сложение
Шестнадцатеричное сложение следует тем же правилам, что и десятичное, с той лишь разницей, что добавляются цифры A, B, C, D, E и F.Может быть удобно иметь десятичные эквивалентные значения от A до F при выполнении шестнадцатеричных операций, если значения еще не сохранены в памяти. Ниже приведен пример шестнадцатеричного сложения. Проработайте пример и обратитесь к тексту под ним для получения дополнительных сведений.
БЫВШИЙ:1 8 | 1 A | B | ||
+ | B | 7 | 8 | |
= | = 900 | 2 | 3 |
Шестнадцатеричное сложение включает вычисление базового десятичного сложения при преобразовании между шестнадцатеричным и десятичным числами, когда присутствуют значения больше 9 (цифры от A до F).В приведенном выше примере B + 8 в десятичной системе счисления составляет 11 + 8 = 19. 19 в десятичной системе счисления равно 13 в шестнадцатеричной системе счисления , так как имеется 1 набор из 16, с оставшимися 3. Как и в случае с десятичным сложением, 1 переносится в следующий столбец. Следовательно, следующий столбец будет 1 + A (10) + 7 = 18 десятичных или 12 шестнадцатеричных . Перенесите 1 в последний столбец, получив 1 + 8 + B (11) = 20 десятичных или 14 шестнадцатеричных . Это дает результат 1423 шестнадцатеричный .
Шестнадцатеричное вычитание
Шестнадцатеричное вычитание можно вычислить почти так же, как шестнадцатеричное сложение; путем выполнения операции при преобразовании шестнадцатеричных значений в десятичные.Наиболее существенная разница между шестнадцатеричным и десятичным вычитанием заключается в заимствовании. При заимствовании в шестнадцатеричном формате заимствованная «1» представляет 16 десятичных , а не 10 десятичных . Это потому, что столбец, из которого заимствуется, в 16 раз больше, чем столбец заимствования (по той же причине, что заимствованная 1 в десятичном представлении представляет 10). Если это отмечено и преобразование буквенных цифр A-F выполняется осторожно, шестнадцатеричное вычитание не сложнее десятичного вычитания.Проработайте пример и обратитесь к тексту под ним для получения дополнительных сведений.
БЫВШИЙ:5 | D | 1 C | ||
— | 3 | A | F | |
= | D |
В первом столбце справа в приведенном выше примере C или 12 десятичных меньше, чем F или 15 десятичных .Таким образом, необходимо заимствовать из следующего столбца. Это уменьшает D до C и дает 1 или 16 десятичных в первый столбец. 16 десятичное + 12 десятичное -15 десятичное = 13 десятичное , или D в первом столбце. Следующие столбцы не требуют заимствования, что упрощает расчеты. Поскольку 1 была заимствована, C — A = 12 десятичных — 10 десятичных = 2 и 5 — 3 = 2, что дает окончательный результат 22D. В случае, когда вычитаемое число больше, чем вычитаемое, просто измените позиции чисел, вычислите вычитание и добавьте к результату знак минус.Если бы в приведенном выше примере вместо 3AF — 5DC, он был бы записан как есть, за исключением того, что решение было бы -22D.
Шестнадцатеричное умножение
Шестнадцатеричное умножение может быть сложным, потому что преобразование между шестнадцатеричным и десятичным числом при выполнении операций требует больше усилий, поскольку числа имеют тенденцию быть больше. Может оказаться полезным наличие шестнадцатеричной таблицы умножения (она приведена ниже). В противном случае для каждого шага потребуется ручное преобразование между десятичной и шестнадцатеричной числами.Ниже приведен пример шестнадцатеричного умножения. Справа от примера показаны шаги умножения и сложения. Обратите внимание, что все используемые цифры шестнадцатеричные. При необходимости обратитесь к разделу «Дополнения».
БЫВШИЙ:F | A | 3 × A = 1E; 1 перенесено в F | |||
× | C | 3 | 3 × F = 2D, + 1 = 2E | ||
2 | E | E | C × A = 78; 7 перенесено в F | ||
+ | B | B | 8 | 0 | C × F = B4, + 7 = BB |
= | B | E | 6 | E |
Hex Division
Полное деление в шестнадцатеричном формате идентично полному делению в десятичном, за исключением того, что умножение и вычитание происходят в шестнадцатеричном формате.Также можно преобразовать в десятичное и выполнить длинное деление в десятичном, а затем преобразовать обратно после завершения. Для наглядности пример деления будет полностью рассчитан в шестнадцатеричном формате. Как и в случае с умножением, при проведении шестнадцатеричного деления было бы удобно иметь шестнадцатеричную таблицу умножения (одна из них приведена ниже). Ниже приведен пример. Обратите внимание, что все цифры в примере шестнадцатеричные. Хотя в приведенном ниже примере заимствования не происходит, помните, что заимствование в шестнадцатеричном формате приводит к заимствованию 16 десятичных , а не 10 десятичных .Обратитесь к разделу вычитания шестнадцатеричных чисел для получения дополнительной информации.
Таблица умножения в шестнадцатеричной системе счисления
Шестнадцатеричное число — обзор
5.2.7 Шестнадцатеричное-двоичное преобразование
Шестнадцатеричное число — это число с основанием (или основанием) 16, а его величина является суммой произведения значения каждой цифры в числе. (h) и его положение (n). Это позволяет создавать числа с цифрами в наборе: 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, A, B, C, D, E, F.
Позиция сразу слева от десятичной точки равна нулю (0). При перемещении влево от позиции 0 (в целой части числа) позиция увеличивается на 1. Значение цифры имеет вес 16 n , где n — номер позиции. При перемещении вправо от нулевой позиции (в дробную часть числа) позиция уменьшается на 1. Шестнадцать возможных цифр комбинируются для создания целых и действительных чисел. В десятичном эквиваленте шестнадцатеричные цифры от A 16 до F 16 представляют собой числа от 10 10 до 15 10 .Таблица 5.7 показывает таблицу преобразования.
Таблица 5.7. Четырехбитное двоичное преобразование шестнадцатерично-десятичного без знака
Шестнадцатеричное число | Десятичное число | 4-разрядное двоичное число без знака | ||||
---|---|---|---|---|---|---|
0 | 0 | 0000 | ||||
1 | 0001 | |||||
2 | 2 | 0010 | ||||
3 | 3 | 0011 | ||||
4 | 4 | 0100 | ||||
5 | 010 | 510 | 6 | 6 | 0110 | |
7 | 7 | 0111 | ||||
8 | 8 | 1000 | ||||
9 | 9 | 1001 | ||||
A | 1010 | |||||
B | 11 | 1011 | ||||
C | 12 | 110 0 | ||||
D | 13 | 1101 | ||||
E | 14 | 1110 | ||||
F | 15 | 1111 |
Величина числа (в виде десятичного числа) определяется по формуле:
Величина = (h n .16 n ) + (h n – 1 .16 n – 1 ) + (h n – 2 .16 n – 2 ) + + (h 0 .16 0 ) + (h –1 .16 –1 ) + + (h –n .16 –n )
Здесь шестнадцатеричное число записывается как h n h n – 1 h n – 2 h 0 .h –1 h –n (с использованием десятичного эквивалента шестнадцатеричного числа).
Вот некоторые примеры шестнадцатеричных чисел:
8 16 = [(8 × 16 0 )] 10
A8 16 = [(1 10 × 16 ) + (8 × 16 0 )] 10
2A8 16 это [(2 × 16 2 ) + (10 × 16 1 ) + (8 × 16 0 )] 10
218.F 16 — это [(2 × 16 2 ) + (1 × 16 1 ) + (8 × 16 0 ) + (15 × 16 –1 )] 10
218.F7 16 — это [(2 × 16 2 ) + (1 × 16 1 ) + (8 × 16 0 ) + (15 × 16 –1 ) + (7 × 16 –2 )] 10 .
Для двоичных чисел каждое шестнадцатеричное число представляет четыре бита. Следовательно, 8-битное двоичное число представлено двумя шестнадцатеричными числами, 16-битное двоичное число представлено четырьмя шестнадцатеричными числами и так далее.Например, 8 16 — это 1000 2 , а A8 16 — это 10101000 2 .
Вот некоторые примеры шестнадцатеричных чисел:
8 16 is 1000 2
A8 16 is 10101000 2
52 918 2 48102903 9182 918 2 480002 2 918 2 2 218.F 16 — 001000011000.1111 2
218.F7 16 — 001000011000.11110111 2 .
Десятичный эквивалент шестнадцатеричного числа создается путем вычисления величины шестнадцатеричного числа с использованием десятичного эквивалента шестнадцатеричных чисел от A до F в виде десятичного числа:
Величина = (h n .16 n ) + (h n – 1 .16 n – 1 ) + (h n – 2 .16 n – 2 ) + + (h 0 .16 0 ) + (h –1 .16 –1 ) + + (h –n .16 –n )
Преобразование из десятичного числа в шестнадцатеричное выполняется аналогично преобразованию из десятичного числа в двоичное, за исключением того, что теперь делится на 16, а не на 2, и используя буквы от A до F для значений десятичного остатка от 10 до 15. Рассмотрим число 7 10 . Процедура преобразования:
Начните с числа (d) Деление Остаток Цифра шестнадцатеричного числа Начните с десятичного числа (d = 7) Разделить на 16 d / 16 = 7/16 = 0 7 h 0 = 7 Шестнадцатеричное число можно прочитать как: 7 10 = (h 0 ) 16 = 7 16 .
Рассмотрим число 100 10 . Процедура преобразования:
Действие Раздел Остаток Шестнадцатеричная цифра Начните с десятичного числа (d = 100) Разделить на 16 d / 16 = 100/16 = 6 4 h 0 = 4 Разделить на 16 d / 16 = 6/16 = 0 6 h 1 = 6 Шестнадцатеричное число можно прочитать как: 100 10 = (h 1 h 0 ) 16 = 64 16 .
Рассмотрим число 255 10 . Процедура преобразования:
Начните с числа (d) Деление Остаток Цифра шестнадцатеричного числа Начните с десятичного числа (d = 255) Разделить на 16 d / 16 = 255/16 = 15 15 h 0 = F Разделить на 16 d / 16 = 15/16 = 0 15 h 1 = F Шестнадцатеричное число можно прочитать как: 255 10 = (h 1 h 0 ) 16 = FF 16 .
Преобразование из шестнадцатеричного в восьмеричное или наоборот осуществляется преобразованием числа в двоичный или десятичный эквивалент и из восьмеричного в шестнадцатеричное число.
Сводная таблица для систем счисления показана в Таблице 5.8. Здесь рассматриваются беззнаковые десятичные числа от 010 до 1510.
Таблица 5.8. Сводка по системам счисления
Десятичное Двоичное без знака Восьмеричное Шестнадцатеричное BCD 0 0000 0 0 000058 1 900 000 1 1 0001 2 0010 2 2 0010 3 0011 3 3 0011 3 0011 4 4 0100 5 0101 5 5 0101 6 0110 6 6 1 1 1 1 1 1 1 1 1 0111 7 7 0111 8 1000 10 9 0321 81000 9 1001 11 9 1001 10 1010 12 A 00010000 11 B 00010001 12 1100 14 C 00010010 13 1101 15 D 00010011 55
D 00010011 55
16 E 00010100 15 1111 17 F 00010101 Двоичные и десятичные числа могут быть только целыми или действительными числами.В таблице 5.9 показаны двоичные и десятичные числа для действительного числа, представленного 40 битами в двоичном формате, при этом 24 бита представляют собой целую часть числа, а 16 битов представляют собой дробную часть числа.
Таблица 5.9. Таблица десятично-двоичного преобразования с положительной позицией слева от десятичной точки и отрицательной позицией справа от десятичной точки
Двоичная позиция Беззнаковое двоичное число Двоичное взвешивание Десятичное значение 23 100000000000000000000000.0000000000000000 2 23 8,388,608 22 01000000000000000000.0000000000000000 2 22 4,194,304 21 00 01000000000000 21 00 01000000000000 21 00 0200000000 000100000000000000000000.0000000000000000 2 20 1,048,576 19 000010000000000000000000.0000000000000000 2 19 524,288 18 000001000000000000000000.0000000000000000 2 18 262,144 17 0000000000000000 000000000000002 000000010000000000000000.0000000000000000 2 16 65,536 15 000000001000000000000000.0000000000000000 2 15 32,768 14 000000000100000000000000.0000000000000000 2 14 16,384 13 000000000010000000092 000000000001000000000000.0000000000000000 2 12 4,096 11 000000000000100000000000.0000000000000000 2 11 2048 10 000000000000010000000000.0000000000000000 2 10 1,024 9 000000000000001000000000.000000 000000000000000100000000.0000000000000000 2 8 256 7 000000000000000010000000.0000000000000000 2 7 128 6 000000000000000001000000.0000000000000000 2 6 64 5 000038 5 000038 000000000000000000100000.000000320000 2 000000000000000000010000.0000000000000000 2 4 16 3 000000000000000000001000.0000000000000000 2 3 8 2 000000000000000000000100.0000000000000000 2 2 4 1 000000000000000000000010.000000321 2 000000000000000000000010.000000320000 2 000000000000000000000001.0000000000000000 2 0 1 Десятичная точка (.) –1 000000000000000000000000.1000000000000000 2 –1 0,5 –2 000000000000000000000000.0100000000000000 2 –2 0,25 –3 00000000000000002 –3 000000000000250000 –4 000000000000000000000000.0001000000000000 2 –4 0,0625 –5 000000000000000000000000.0000100000000000 2 –5 0,03125 –6 000000000000000000000000,0000010000000000 2 –6 0,015625 –7 000000
00000000 –7 000000
00000000 –7 000000
00000000 –7 000000
00000000 –7 000000
00000000 –8 000000000000000000000000.0000000100000000 2 –8 0.003 –9 000000000000000000000000.0000000010000000 2 –9 0.001953125 –10 000000000000000000000000.0000000001000000 2 –10 0.0009765625 –11000000002 –11000000002 –11000000002 –12 000000000000000000000000.0000000000010000 2 –12 0.00024414063 –13 000000000000000000000000.0000000000001000 2 –13 0,00012207031 –14 000000000000000000000000.0000000000000100 2 –14 0,000061035156 00
0000170000 00
–14000017000000 –14 –16 000000000000000000000000.0000000000000001 2 –16 0.000015258789 Шестнадцатеричный — обзор | Темы ScienceDirect
10.4.4 Описание приложений DIZI
Еще восемь приложений указаны ниже, и исходный код каждого из них указан в программах 10.4. Их можно загрузить с сайта www.picmicros.org.uk и протестировать в режиме моделирования в MPSIM или ISIS (если доступно). Если оборудование DIZI сконструировано, оно может быть запрограммировано в микросхему 16F84A с помощью внешнего программатора.
Программы 10.4. 8 приложений DIZI.
HEX1 Hex Converter
Отображается шестнадцатеричное число, соответствующее двоичной настройке входов DIP-переключателя. Входные переключатели выбирают из таблицы 16 семисегментных кодов, которые управляют дисплеем в требуемом шаблоне для каждой шестнадцатеричной цифры: 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, A, b, C, d и E. Обратите внимание, что числа B и D отображаются в нижнем регистре, чтобы их можно было отличить от 8 и 0 соответственно.
Отображение сообщений MESS1
Последовательность символов отображается примерно для 0.По 5 с. Большинство букв алфавита можно получить на семисегментном дисплее в верхнем или нижнем регистре, например «ПРИВЕТ». Количество символов должно быть установлено в счетчике или используется символ завершения.
Счетчик секунд SEC1
Отображается вывод, который ведет обратный отсчет ровно один раз в секунду, от 0 до 9, а затем повторяется. Таблица кодов дисплея требуется, как и в приложении Hex Converter. Задержка в 1 с может быть достигнута с помощью аппаратного таймера (глава 6) и резервного регистра.На аудиовыходе можно было поставить галочку, пульсируя динамик на каждом шаге.
Таймер реакции REACT1
Время реакции пользователя проверяется путем генерации случайной задержки от 1 до 10 с, выдачи звукового сигнала и отсчета времени задержки до нажатия кнопки ввода. Число, представляющее время между звуком и входом, кратное 100 мс, должно отображаться как число 0–9, что дает максимальное время реакции 900 мс.
GEN1 AF Generator
Генератор звуковой частоты выдает частоты в диапазоне от 20 Гц до 20 кГц.Выход сирены переключается с задержкой между каждой операцией, определяемой требуемой частотой, как в программе BUZZ1. Например, для частоты 1 кГц требуется задержка в 1 мс, что составляет 1000 циклов команд при времени цикла 1 мкс. Информация о синхронизации программы должна быть изучена в главе 6. Время задержки и, следовательно, частота, затем могут быть увеличены с помощью кнопки ввода, и может быть включен выбор диапазона с помощью переключателей входа, поскольку при использовании доступно только 255 шагов. 8-битный регистр в качестве счетчика периодов.
MET1 Метроном
Звуковой импульс выводится со скоростью, установленной DIP-переключателями или кнопками ввода. Такт вывода можно регулировать, скажем, от 1 до 4 ударов в секунду, используя кнопку прерывания для увеличения или уменьшения скорости и кнопку ввода для выбора увеличения или уменьшения. Программный цикл или регистр TMR0 могут использоваться для обеспечения необходимых временных задержек.
BELL1 Дверной звонок
Мелодия проигрывается при нажатии кнопки ввода с использованием таблицы поиска программы для частоты и продолжительности тона.Каждый тон должен воспроизводиться в течение подходящего времени или количества циклов, как того требует мелодия. Программа может быть разработана путем выбора мелодии с помощью DIP-переключателей и отображения номера выбранной мелодии.
GIT1 Guitar Tuner
Программа позволит пользователю переключать частоты для настройки струн гитары или другого музыкального инструмента с помощью кнопки ввода или выбора тембра с помощью DIP-переключателей. Программа может быть расширена путем отображения номера настраиваемой струны.Частоты тона будут генерироваться как для приложения дверного звонка. Коды отображения цифр также потребуются в таблице.
Вопросы 10
- 1.
Назовите одно преимущество и один недостаток: (а) макетной платы; (б) картон; (c) моделирование для тестирования прототипов. (6)
- 2.
Укажите выходной двоичный код для: (a) выключения всех сегментов и (b) отображения цифры «2» на общем катодном семисегментном светодиодном дисплее, предполагая соединения, показанные на рисунке 10. .15. (4)
- 3.
Обрисуйте алгоритм для генерации выходного сигнала фиксированной частоты приблизительно 1 кГц от платы DIZI с использованием аппаратного таймера. (5)
- 4.
Нарисуйте блок-схему, представляющую процесс генерации «случайной» задержки между нажатием кнопки и включением выходного светодиода. (5)
Действия 10
- 1.
Соберите схему DIZI на макетной плате, стрип-плате или печатной плате и протестируйте программы BUZZ1, DICE1 и SCALE1.
- 2.
Подтвердите расчетом или моделированием, что значения, используемые в таблице данных программы в SCALE1.ASM, дадут требуемые задержки.
- 3.
Разработайте макет платы для схемы BIN, показанной на рисунке 3.3. Соберите схему и протестируйте программы BINx.
- 4.
Разработайте и внедрите одну из программ, описанных для оборудования DIZI, и сравните свое решение с модельными программами, предоставленными для HEX1, MESS1, SEC1, REACT1, GEN1, MET1, BELL1 или GIT1.
- 5.
- (a)
Изучите, как можно обнаружить ввод с цифровой клавиатуры. См. Главу 1, раздел 1.4.1. Типичная клавиатура, показанная на рисунке 10.17, имеет 12 клавиш в четырех рядах по три: 1, 2, 3; 4, 5, 6; 7, 8, 9; * , 0, #. Они подключены к семи терминалам и могут сканироваться по строкам и столбцам. Нажатие клавиши определяется как соединение между строкой и столбцом. Подтягивающие резисторы гарантируют, что по умолчанию на всех линиях будет установлена логическая «1».Если «0» применен к одному из выводов столбца (C1, C2, C3) и нажата клавиша, этот «0» может быть обнаружен на выводе строки (R1, R2, R3, R4). Если терминалы клавиатуры подключены к порту PIC и выход «0» поочередно к трем столбцам, ключ может быть обнаружен как комбинация выбранного столбца и обнаруженной строки. Терминалы столбцов могут быть установлены как выходы, а строки как входы. Нарисуйте блок-схему, чтобы представить процесс преобразования каждого десятичного ключа в соответствующий номер BCD.
Рисунок 10.17. Подключения клавиатуры
- (b)
Функция блокировки может быть реализована путем сопоставления входной последовательности с сохраненной последовательностью, скажем, из четырех цифр и включения выхода на соленоид двери, если обнаружено совпадение. Укажите оборудование и наметьте программу для приложения блокировки.
- (c)
Спроектируйте, соберите и протестируйте систему электронного замка, используя показанную клавиатуру, подходящий PIC и светодиод для индикации состояния замка (ВКЛ = разблокирован).Изучите конструкцию интерфейса для дверного замка с соленоидным приводом.
Системы счисления
Десятичная система счисления (основание 10)
- Использует 10 цифр: 0 9
- 125 = 1 * 10 2 + 2 * 10 1 + 5 * 10 0
Двоичная система счисления (основание 2)
- Использует 2 цифры: 0 и 1
- 110101 = 1 * 2 5 + 1 * 2 4 + 0 * 2 3 + 1 * 2 2 + 0 * 2 1 + 1 * 2 0
Шестнадцатеричная система счисления (основание 16)
- Использует 16 символов: 0 9, A, B, C, D, E, F
- 19F = 1 * 16 2 + 9 * 16 1 + 15 * 16 0
Десятичное
Двоичный
Шестнадцатеричный
0
0000
0
1
0001
1
2
0010
2
3
0011
3
4
0100
4
5
0101
5
6
0110
6
7
0111
7
8
1000
8
9
1001
9
10
1010
А
11
1011
Б
12
1100
К
13
1101
Д
14
1110
E
15
1111
Ф
Преобразование двоичного числа => Шестнадцатеричное
Разделите нули и единицы на группы по 4, начиная справа.Если нужно, введите слева нули, чтобы сформировать группу из четырех человек. Найдите соответствующее шестнадцатеричное значение из таблицы.
11011011100011 = 0011 0110 1110 0011 = 3 6 E 3 = 36E3
Преобразование шестнадцатеричного => двоичного
Преобразование двоичного / шестнадцатеричного => десятичного числа
Умножьте каждый символ на базовое значение, возведенное в позиционную степень а затем добавьте каждый продукт.
11011 = 1 * 2 4 + 1 * 2 3 + 0 * 2 2 + 1 * 2 1 + 1 * 2 0 = 27
2AF = 2 * 16 2 + 10 * 16 1 + 15 * 16 0 = 687
Преобразование десятичного числа => двоичное / шестнадцатеричное
Разделите на базовое значение, пока частное не станет 0. При преобразовании в шестнадцатеричный формат преобразовать остатки в шестнадцатеричный.
415 (в десятичной системе) = 19F (в шестнадцатеричной системе)
0 16 Ö 1 R1 => 1 16 Ö 25 R9 => 9 16 Ö415 R15 => F
Арифметика
Сложение двоичных файлов
1 11 0 0 1 1 1 + 0 + 1 + 0 + 1 + 1 0 1 1 10 11 111111 11010110 + 1101101 101000011
Двоичное вычитание
02 0 1 1 10 -0 -0 -1 -1 0 1 0 1 1 02202 02 1100101110 –11010001 1001011101
Шестнадцатеричное сложение
A27CB4 39CDF106 + 6E3095 + A6F278C 110AD49 443D1892
Шестнадцатеричное вычитание
A52CF3 3B0029 - 2B7169 - 1765A4 79BB8A 239A85
Хранилище
Основная память компьютера состоит из битов (или двоичных цифр).
1 бит => двоичный 0 или 1
1 байт => 8 бит => 2 шестнадцатеричных цифры
1 полуслово => 2 байта => 16 бит => 4 шестнадцатеричных цифры
1 полное слово => 4 байта => 32 бита => 8 шестнадцатеричных цифр => 2 полуслова
1 двойное слово => 8 байтов => 64 бита => 16 шестнадцатеричных цифр => 2 полных слова
Наибольшее положительное шестнадцатеричное значение, которое может быть сохранено: 7 FFFFFFF
Если первая цифра 0 7, положительное шестнадцатеричное число.
Если первая цифра 8 F, шестнадцатеричное отрицательное число.
Наибольшее положительное двоичное значение: 0 11111111111111111111111111111
Первая цифра называется битом знака
Если 0, положительное двоичное число
Если 1, отрицательное.
Отрицательные числа сохраняются как двоичное дополнение абсолютного значение числа.
Чтобы найти двоичное дополнение до 2:
- Переключить все 0 на 1 и 1 на 0 (поиск дополнения до 1)
- Добавить 1
100111100 => 011000011 + 1 011000100
Чтобы найти шестнадцатеричное дополнение до двух:
- Вычтите число из FFFFFFFF
- Добавить 1
FFFFFFFF FFFFFFFF FFFFFFFF - 002BCF06 - 00000001 - FFD430FA FFD430F9 FFFFFFFE 002BCF05 + 1 + 1 + 1 FFD430FA FFFFFFFF 002BCF06
Арифметика с дополнением до двоек:
Перелив:
Происходит, когда число становится слишком большим для его схемы представления.
Для проверки переполнения:
- Преобразование 1 цифры -й каждого числа в двоичную
- Сложить двоичные значения вместе
- Если два последних бита переноса совпадают, переполнения нет.
- Если они разные, переполнение.
00 <= НЕТ переполнения 729B6320 7 => 0111 + 8A5C973C 8 => 1000 FCF7FA5C 1111 10 <= переполнение 92B176C0 9 => 1001 + 859237A4 8 => 1000 1843AE64 0001 01111 <= переполнение 328AC105 328AC105 3 => 0011 - 807B96AF => 7F846951 => + 7F846951 7 => + 0111 B20F2A56 1011
.