Site Loader

Содержание

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

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

В качестве алфавита шестнадцатеричной системы счисления используются цифры от 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

n, где n – количество составляющих ее бит. В случае восьми бит получаем:

28 = 256

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

Главная / Ассемблер / Для чайников / Системы счисления /

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


0, 1, 2, 3, 4, 5, 6, 7, 8, 9, A, B, C, D, E, F
Соответственно, основание шестнадцатеричной системы равно 16.

Шестнадцатеричное число является компактным и лёгким для чтения. Его легко преобразовать в двоичное и наоборот. Каждый разряд шестнадцатеричного числа – это тетрада. Каждую тетраду легко преобразовать в двоичное число и наоборот (см. таблицу 2.3).

Таблица 2.3. Преобразование чисел.

Десятичное Двоичное Шестнадцатеричное
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 A
11 1011 B
12 1100 C
13 1101 D
14 1110 E
15 1111 F

В конец шестнадцатеричного числа принято ставить букву h. Таким образом мы можем отличить шестнадцатеричное число от чисел в других системах исчисления. Например


11 – десятичное число 11
11b – двоичное число, которое эквивалентно десятичному числу 3
11h – шестнадцатеричное число, которое эквивалентно десятичному числу 17
В исходных кодах программ на ассемблере, если шестнадцатеричное число начинается с буквы, то перед ним нужно поставить ноль, иначе ассемблер подумает, что это не число, а имя переменной. Например, число FF в исходном коде на ассемблере должно быть записано как 0FFh.

Буквы в 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-929 1D
10 А30
11 В31 1F
12 С32-41 20-29
13 D42-47 2A-2F
14 Е48-255 30-FF
15 F256 100
16 10512 200
17-25 11-191024 400
26 1280 500
27 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 .

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

    • Если вы вообще ничего не знаете о шестнадцатеричной системе, начните с изучения основных понятий .
  2. Возведите 16 в степень от 1 до 5 и запишите результаты. Разряд каждой цифры шестнадцатеричного числа является результатом возведения в степень числа 16, так же как разряд каждой цифры десятичного числа является результатом возведения в степень числа 10. Следующий список результатов возведения 16 в различные степени пригодится в процессе преобразования:

    • 16 5 = 1048576
    • 16 4 = 65536
    • 16 3 = 4096
    • 16 2 = 256
    • 16 1 = 16
    • Если конвертируемое десятичное число больше 1048576, возведите 16 в большую степень, а результат добавьте в список.
  3. В списке найдите наибольшее число, которое меньше данного десятичного числа. Запишите данное десятичное число, которое нужно преобразовать в шестнадцатеричное. Посмотрите на список, приведенный выше, и найдите наибольший результат (возведения 16 в степень), который меньше данного десятичного числа.

    • Например, нужно преобразовать десятичное число 495 в шестнадцатеричное. В списке выберите число 256.
  4. Разделите десятичное число на выбранный результат возведения 16 в степень. Работайте с целочисленным результатом деления – не обращайте внимания на цифры после десятичной запятой.

    • В нашем примере: 495 ÷ 256 = 1,93…, поэтому работайте с числом 1 (это целое частное от деления).
    • Полученный результат – это первая цифра шестнадцатеричного числа. В этом случае вы разделили данное десятичное число на 256, поэтому 1 находится в разряде 256-и.
  5. Найдите первый остаток. То есть остаток от деления данного десятичного числа на выбранное число (делитель). Остаток вычисляется так же, как при делении в столбик.

    • Умножьте полученное частное на делитель. В нашем примере: 1 х 256 = 256 (то есть 1 в шестнадцатеричном числе представляет 256 по основанию 10).
    • Результат умножения вычтите из данного десятичного числа: 495 — 256 = 239 .
  6. Разделите остаток на следующий (по списку) результат возведения 16 в степень. Посмотрите на список с результатами возведения 16 в разные степени. Найдите результат, который находится под результатом, который вы выбрали для предыдущего деления. Разделите остаток на выбранное число, чтобы найти следующую цифру шестнадцатеричного числа (если остаток меньше выбранного числа, следующая цифра равна 0).

    • 239 ÷ 16 = 14 . Не обращайте внимания на цифры после десятичной запятой.
    • Это вторая цифра шестнадцатеричного числа, которая находится в разряде 16-и. Любое число от 0 до 15 может быть представлено одной шестнадцатеричной цифрой. Полученные цифры будут преобразованы и расставлены в конце этого метода.
  7. Найдите второй остаток. Для этого умножьте полученное частное на делитель, а затем результат умножения вычтите из первого остатка. Второй остаток нужно преобразовать в цифру шестнадцатеричного числа.

    • 14 x 16 = 224.
    • 239 — 224 = 15, то есть остаток равен 15 .
  8. Повторяйте описанный процесс до тех пор, пока остаток не будет меньше 16. Если остаток равен числу от 0 до 15, он может быть выражен одной шестнадцатеричной цифрой. Эта цифра будет последней цифрой.

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

    • Цифры от 0 до 9 не меняются.
    • 10 = A; 11 = В; 12 = C; 13 = D; 14 = E; 15 = F
    • В нашем примере вы получили цифры (1)(14)(15). То есть шестнадцатеричное число запишется так: 1EF .
  10. Проверьте ответ. Это легко сделать, если знать основы шестнадцатеричной системы счисления. Преобразуйте каждую цифру шестнадцатеричного числа в цифру по основанию 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, то есть получилось исходное десятичное число.

Facebook

Twitter

Вконтакте

Одноклассники

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

Глава 1: Информация, ее измерение и кодирование.

Решение заданий из тестов

 

2004—А2. Считая, что каждый символ кодируется одним байтом, оцените информационный объем следующего предложения: «Мой дядя самых честных правил, Когда не в шутку занемог, Он уважать себя заставил И лучше выдумать не мог».

1) 108 бит 2) 864 бита 3) 108 килобайт 4) 864 килобайта.

Решение. Поскольку в тексте содержится 108 символов (считая все пробелы и знаки препинания), а каждый символ кодируется 1 байтом, то получаем 108 * 1 байт = 108 байт = 108 * 8 бит = 864 бита.

Ответ № 2.

 

 

2004—A3. Шахматная доска состоит из 64 полей: 8 столбцов на 8 строк. Какое минимальное количество бит потребуется для кодирования координат одного шахматного поля?

1) 4; 2) 5; 3) 6; 4) 7.

Решение. Необходимо представить 64 разных кода. 64 = 26. Следовательно, минимальная длина необходимой кодовой комбинации составляет 6 бит

Ответ № 3.

 

 

2004—А4. Получено сообщение, информационный объем которого равен 32 битам. Чему равен этот объем в байтах?

1) 5; 2) 2; 3) 3; 4) 4.

Решение. В одном байте 8 бит.

Ответ:№ 4.

 

 

2004—А5. Как представлено число 2510 в двоичной системе счисления?

1) 10012; 2) 110012; 3) 100112; 4) 110102.

Решение. 2510 = 1610 + 810 + 110 = 1*24 + 1*23 + 0*22+0*21+ 1*20. Таким образом, получаем 2510= 110012.

Ответ № 2.

 

 

2004— А6. Вычислите значение суммы 102 + 108 +1016 в двоичной системе счисления.

1) 10100010; 2) 11110; 3) 11010; 4) 10100.

Решение. 102 + 108 + 1016 = 102 + 10002 + 100002 = = 110102.

Ответ № 3.

 

2004—А16. Для 5 букв латинского алфавита заданы их двоичные коды (для некоторых букв — из двух бит, для некоторых — из трех). Эти коды представлены в таблице:

а

b

с

d

е

000

110

01

001

10

Определите, какой набор букв закодирован двоичной строкой 1100000100110.

1) baade; 2) badde; 3) bacde; 4) bacdb.

Решение. При кодировании текста кодом переменной длины правильная комбинация позволяет однозначно интерпретировать закодированный текст. Выполним разделение комбинации на коды отдельных символов: 110 000 01 001 10. Таким образом, получаем: bacde.

Ответ № 3.

 

 

2004—В1. В системе счисления с некоторым основанием число 12 записывается в виде 110. Укажите это основание.

Решение. 1210 = 110х; х2+ х = 12; х2 + х — 12 = 0. Уравнение имеет два корня, один из которых — отрицательный, следовательно, ответ 3.

 

 

2005—А2. Сколько существует различных последовательностей из символов «плюс» и «минус» длиной ровно в пять символов?

1) 64; 2) 50; 3) 32; 4) 20.

Решение. Очевидно, что различных комбинаций из символов «плюс» и «минус» длиной ровно в пять символов существует ровно столько же, сколько и соответствующих двоичных кодов той же длины, т.е. 25=32.

Ответ № 3.

 

 

2005—A3. Обычный дорожный светофор без дополнительных секций подает шесть видов сигналов (непрерывные красный, желтый и зеленый, мигающие желтый и зеленый, красный и желтый одновременно). Электронное устройство управления светофором последовательно воспроизводит записанные сигналы. Подряд записано 100 сигналов светофора. В байтах данный информационный объем составляет:

1) 37; 2) 38; 3) 50; 4) 100.

Решение. Для кодирования шести различных состояний достаточно трех бит (при этом две комбинации даже остаются невостребованными). Таким образом, 100 сигналов кодируются 300 битами. Делим это число на 8 и округляем в большую сторону (дробных байтов не бывает). Получаем 38 байт.

Ответ № 2.

 

2005—А13. Для 5 букв латинского алфавита заданы их двоичные коды (для некоторых букв — из двух бит, для некоторых — из трех). Эти коды представлены в таблице:

А

B

C

D

Е

000

01

100

10

011

Определить, какой набор букв закодирован двоичной строкой 0110100011000.

1) ЕВСЕА; 2) BDDEA; 3) BDCEA; 4) ЕВАЕА.

Решение. При кодировании текста кодом переменной длины правильная комбинация позволяет однозначно интерпретировать закодированный текст. Выполним разделение комбинации на коды отдельных символов (разбиение целесообразно начать в этом примере с конца цепочки): 01 10 100 011 000. Таким образом, получаем: BDCEA.

Ответ № 3.

 

 

2005— В1. Укажите через запятую в порядке возрастания все основания систем счисления, в которых запись числа 23 оканчивается на 2.

Решение. Имеем: 2310= а2х; 23 = ах + 2; ах = 21. Искомый ответ находится среди целых корней последнего уравнения — 3, 7, 21. Проверка показывает, что все эти основания являются подходящими.

Ответ: 3, 7, 21.

 

 

2005-А1.Шестнадцатеричное число 0.Е(А)16 в системе счисления по основанию 8 равно

1) 0.16(52)8 2) 0.7(25)8 3)0.70(52)8

4) 0.16(12)8 5)0.7(05)8

Решение: Распишем период исходной дроби несколько раз: 0.ЕАААААА…16, переведем в двоичную систему счисления и найдем новый период, переведем в восьмеричную:

0. 1110 1010 1010 1010 1010 1010…2 =

= 0. 111010101010101010…2 =0.72525252…8=0.7(25)8

Ответ: 2.

 

 

2006-А1. Восьмеричное число 0.4(3)8 в системе счисления по основанию 4 равно

1) 0.20(312)4 2) 0.10(123)4 3) 0.20(1)4

4)0.20(123)4 5) 0.10(03)4

Решение: Распишем период исходной дроби несколько раз: 0.433333…8, переведем в двоичную систему счисления и найдем новый период, переведем в четверичную систему счисления :

0.433333…8=0. 100 011 011 011 011 011 011 …8=

=0. 1000110110110110110110…2=

= 0.20312312312…4 = 0.20(312)4

Ответ: 1.

 

 

2006-А11. В шестнадцатеричной системе счисления сумма чисел 1258 и F116 равна

1) 17616 2) 14А16 3) 13В16 4) 15С16 5) 14616

Решение: Переводим числа в двоичную систему счисления:

1258 =001 010 1012 и F116 =1111 00012 , складываем двоичные числа, результат переводим в шестнадцатеричную систему счисления

001 010 101+1111 0001=1 0100 01102=14616.

Ответ: 5.

 

 

2006-А12. . В шестнадцатеричной системе счисления произведение чисел 318 и 1С16 равно

1) 2С116 2) 2ВС16 3) 2В416 4) 2С716 5) 2А416

Решение: Переводим числа в десятичную систему счисления, производим умножение, затем результат переводим в шестнадцатеричную систему счисления:

318 =3*81+1*80=2510 и 1С16=1*161+12*160=2810;

2510*2810=70010=2ВС16

Ответ: 2.

 

 

2006-А13. Решение Х неравенства 8х+10 Кбайт > 32х+2байт равно

1) х<5 2) x<10 3) x<15 4) x<20 5) x<22

Решение: Для решения следует знать, как одни единицы измерения информации выражаются через другие, т.е. в данном случае 1Кб=1024байт=210байт, тогда исходное неравенство может быть записано следующим образом:

8х+10 Кбайт > 32х+2байт

8х+10∙210байт > 32х+2байт, так как единицы одни, то их можно далее не записывать. Приведем все основания степеней к основанию 2, решим неравенство: 23(х+10)∙210 > 25(x+2)

3(x+10)+10>5(x+2)

3x+40>5x+10

x<15.

Ответ: 3.

 

 

2006-А14. Информационному сообщению объемом 120320 байт соответствует

1) 115,5 Кб 2) 1,5 Мб 3) 1,5 Кб

4) 962560 бит 5) 102580 бит

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

1байт=8бит

1Кб=1024байт=210байт, тогда 120320*8=962560 бит.

Ответ: 4.

 

 

2006-В1. Алфавит племени Пиджен состоит из четырёх букв. Аборигены закодировали слово CBAD с использованием следующей кодовой таблицы:

и передали его, не сделав промежутков, отделяющих одну букву от другой. Количество способов прочтения переданного слова равно ___.

Решение. Слово аборигены закодировали, используя таблицу в виде: 010101. Все остальные способы прочтения переданного слово можно установить методом перебора. Таким образом, можно получить тринадцать способов (включая исходный): 1)CBAD 2)CABD 3)CADB 4)CDBA 5)CDAB 6)CBDA 7)BACD 8)BCAD 9)BCDA 10)BDCA 11)BDAC 12)BADC 13)BDBDBD.

Ответ: 13.

 

 

1) Мама попросила дочку сходить в магазин и купить фрукты. В магазине в наличии было 4 кг. яблок, 5 кг. груш и 10 кг. апельсинов. Определить количество информации, полученной мамой в зрительном сообщении о покупке, сделанной дочкой.

Решение. В задаче не конкретизировано, какие фрукты купила дочка. Информацией для мамы будет именно вид фруктов.

В 1948 году К. Шеннон предложил формулу для вычисления количества информации для неравновероятных событий в общем случае: , где I – количество информации, которое мы получим после реализации одного из возможных событий; N – количество видов возможных событий; Рi— вероятность i–го события.

Таким образом, количество видов событий: N показывает, сколько будет слагаемых. Речь идет о яблоках, грушах и апельсинах, поэтому N=3.

Определим вероятности покупки каждого вида фруктов: .

Тогда количество информации, которое получит мама после прихода дочки домой, можно рассчитать по формуле Шеннона:

бита.

Ответ: 1,47 бита.

 

 

2). В корзине лежат белые и черные шары. Среди них 18 черных шаров. Сообщение о том, что из корзины достали белый шар, несет 2 бита информации. Сколько всего в корзине шаров?

Решение. Из условия можно увидеть, что количество черных и белых шаров различное, поэтому воспользуемся формулой Хартли для неравновероятных событий.

Формулы Хартли для вычисления количества информации:

первая через количество событий ,

вторая – через вероятность .

Обозначим Кч, Кб – количество черных и белых шаров соответственно, К – общее количество шаров, iб – количество информации в сообщении, что из корзины достали белый шар, рб – вероятность выбора белого шара, тогда Кч=18 шт, iб=2 бита.

Основные формулы:

С другой стороны по формуле

составим и решим уравнение

Ответ: 24.

 

 

2005-В2 Каждый аспирант кафедры «Информационные системы» изучает только один из трех языков: английский, немецкий или французский. Причем 30 аспирантов не изучают английский язык. Информационный объем сообщения «Аспирант Петров изучает английский язык» равен 1 + log23 бит. Количество информации, содержащееся в сообщении «Аспирант Иванов изучает французский язык», равно двум битам. Иностранный студент, приехавший в университет, знает только немецкий язык. Чему равно количество аспирантов кафедры, с которыми сможет общаться иностранный студент?

Решение. Из условия видно, что количество аспирантов, изучающих английский, немецкий и французский языки различное и вопрос задачи указывает на конкретное изучения языка, поэтому воспользуемся формулой Хартли для неравновероятных событий.

Обозначим Кн, Кф, Ка– количество абитуриентов, изучающих немецкий, французский и английский языки соответственно, iа – количество информации в сообщении «Аспирант Петров изучает английский язык», iф – количество информации в сообщении «Аспирант Иванов изучает французский язык», тогда Кн+Кф=30, iа =1+log23 бита, iф=2 бита.

Основные формулы:

 

 

2004-В2. Добрый экзаменатор никогда не ставит двоек по информатике. По причине своей доброты он заранее определил количество отметок каждого вида и произвольно расставил их абитуриентам. Количество информации, содержащееся в сообщении «Абитуриент Иванов не сдал экзамен на отлично», равно 3-log27 бит. Информационный объем сообщения «Абитуриент Сидоров получил четверку» равен двум битам. Определите информационный объем зрительного сообщения о полученной оценки абитуриентом Сидоровым.

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

Обозначим i4 – количество информации в сообщении «Абитуриент Сидоров получил четверку», i4или3 – количество информации в сообщении «Абитуриент Иванов не сдал экзамен на отлично», I — информационный объем зрительного сообщения о полученной оценки абитуриентом Сидоровым, к – показатель определенной оценки, р3, р4, р5 – вероятности выставления троек, четверок и пятерок соответственно, р4или3 – вероятность выставления оценки не отлично, тогда i4 или 3=3 — log27 бита, i4 = 2 бита. Основные формулы:

 

 

2006-В2. В словаре людоедов племени Мумбо-Юмбо – 16 слов. Он содержит слова только трех частей речи: существительные, глаголы и междометия. Каждый раз за обедом, по причине своей дикости, людоед произносит предложение, состоящее из одного равновероятно выбранного из словаря слова. Количество информации, содержащееся в сообщении «В предложении нет глагола», равно 2- log 2 3 бит. Информационный объем сообщения «В предложении нет существительного» равен 3-log 2 7 бит. Количество междометий в словаре равно ____.

Решение. Пусть Х — количество междометий; У- количество существительных; Z – количество глаголов, тогда X+Y+Z= 16 (по условию) (1)

1/Р = 21 (2)

Нет глагола: 2i =22–log23=22: 2log 2 3=4/3 (3)

Нет существительного: 2i =23–log27=23: 2log 27=8/7 (4)

Вероятность не встретить глагол равна Р=(X+Y)/16 (5)

Вероятность не встретить существительное равна Р=(X+Z)/16 (6)

Подставляем (3) и (5) в (2), (4) и (6) в (2), получим

4/3=16\(X+Y) (7)

8/7=16/(X+Z) (8)

Решаем систему уравнений (1), (7), (8):

V1 + V2 + V3 + V5 < V4 + V6 + V7 + V8;

V2 + V5 + V7 + V9 > V1 + V3 + V10 + V11,

V3 + V5 + V6 + V12 > V1 + V4 + V9 + V10

Помогите купцу определить фальшивую монету. Номер фальшивой монеты равен __________

Решение. Допустим, что фальшивая монета по весу легче остальных. Оценим результаты взвешиваний

:

V1 + V2 + V3 + V5 < V4 + V6 + V7 + V8;

V2 + V5 + V7 + V9 > V1 + V3 + V10 + V11,

V3 + V5 + V6 + V12 > V1 + V4 + V9 + V10

Видим, что во всех трёх случаях встречаются монеты с номерами: 1,3,5 Рассмотрим первое неравенство:

V1 + V2 + V3 + V5 < V4 + V6 + V7 + V8

Сумма веса монет с номерами 1,3,5 меньше суммы монет с остальными номерами.

Рассмотрим следующее неравенство:

V2 + V5 + V7 + V9 > V1 + V3 + V10 + V11

Так как монета с номером 5 по весу стала больше, чем сумма монет с номерами 1 и 3, делаем вывод, что монета с номером 5 — не фальшивая. Осталось рассмотреть монеты с номерами 1 и 3. Чтобы выяснить, какая из этих монет фальшивая, рассмотрим последнее неравенство:

V3 + V5 + V6 + V12 > V1 + V4 + V9 + V10

Из него мы видим, что монета с номером 1 меньше суммы монет с номерами 3 и 5. Отсюда делаем вывод, что монета с номером 1 — фальшивая.

Ответ: 1.

 

 

2006-В4. Шестнадцатеричное четырехзначное число начинается с цифры 8. Первую переставили в конец числа. Полученное число оказалось на DDAA16 меньше исходного. Исходное число, записанное в системе счисления по основанию 16 равно ____

Решение:

Х1 Х2 Х3 8

+ D D A A

8 X1 X2 X3

8+A=18=16+2, следовательно, X3 = 2

1+ 2 + A = D, следовательно, X2 =D

D +D = 13+13 = 26 = 16 + 10 = A и 1 переносится в старший разряд

Таким образом, Х1 = А. Проверим 1+А+D = 24 = 16+ 8 = 8 и 1 переносится в старший разряд.

Ответ: 8AD216.

 

 

2004-В4. Трехзначное число, записанное в одиннадцатеричной системе счисления, уменьшается вдвое от перестановки первой цифры в конец числа. Максимальное из таких чисел, записанное в одиннадцатеричной системе счисления, равно ___.

Решение: Исходное число – xyz11. Измененное число – yzx11. По условию yzx11 в 2 раза меньше xyz11, значит xyz11= yzx11+ yzx11. у меньше 6, т.к. при сложении трехзначных чисел получаем трехзначное число. Нужно найти наибольшее из таких возможных чисел xyz. Пусть х=А, тогда z=9, y=8. Это невозможно т.к. у должно быть меньше 6.

Пусть х=9, тогда z=7, a y=4. Проверяем 47911 + 47911 = 94711.

Ответ: 94711

1). Для обозначения цифр числа используются буквы. При этом одинаковые цифры обозначены одной буквой. Даны натуральные числа X, XX, YYX в восьмеричной системе счисления. Сумма всех чисел равна YZX. Найти все возможные тройки чисел X, XX, YYX. Ответ записать в десятичной системе счисления.

YYX

+ XX

X X = 4; 4 + 4 + 4 =12 = 8+ 4 = 4 и 1 — в старший разряд

YZX 1 + Y + 4 = Z; Y +5 = Z

Так как система счисления по основанию 8, то значение Z не может быть больше 7, следовательно, оно может принять значение 6 или 7. Значит при Z = 6, Y= 1; при Z = 7, Y= 2.

Все возможные тройки чисел X, XX, YYX = 4, 44, 114, 224.

48 = 410 , 448 = 4*8+4 =3610 , 1148 = 7610, 2248 = 14810

Ответ: 4; 36; 76; 148.

 

 

2006-В5.Основание позиционной системы счисления x, при котором 465х = 135y равно _____

Решение: Представим обе части равенства в десятичной системе счисления.

Используя метод перебора, подставляем вместо Y значения, начиная с 6, так как в числе есть цифра 5 и , следовательно, минимальное основание систе6мы счисления равно 6.

Для всех чисел кроме 16 корень из дискриминанта нацело не извлекается, следовательно, примем за основание системы счисления Y=16.

Получим уравнение

х1 = 8; х2 = -76/8 – корень отбрасываем, так как основание системы счисления не может быть отрицательным и дробным числом.

Таким образом, ответ Х = 8.

Ответ: 8.

 

 

2004-В5. В5. Наименьшее основание позиционной системы счисления х, при котором 125x= 488y, равно ________ .

Решение. Переведём числа 488x и 125y в десятичную систему счисления.

488y=4*у2+8*у1+8*у0, 125x=1*х2+2*х1+5*х0.

4*у2+8*у1+8*у0=1*х2+2*х1+5*х0.

Преобразуем полученное равенство: (х+1)2+4=(2у+2)2+4.

Так как х, у>0, получаем х+1=2у+2; х=2у+1.

Минимальное основание системы счисления, в которой может существовать запись числа 488, равно 9. Тогда х=2*9+1=19.

Наименьшее основание позиционной системы счисления, в которой может существовать число 125x, равно 19.

Ответ: 19.

 

 

2004-В6. Переменные Х, Х1, Х2, Х3 имеют размер — байт, тип – знаковый,. В шестнадцатеричной системе счисления Х1= Е716 , Х2=F216, Х3=ВА16 . Значение выражения Х=(Х1-Х2)*Х3 в десятичной системе счисления равно _______.

Решение. В двоичной системе счисления Х1=Е716 =111001112, Х2=F216=111100102 , Х3=ВА16=11100112. Введем обратный код и добавим 1 (дополнительный код), т.к. тип знаковый, следовательно, все числа меньше 0, т.к. старший разряд равен 1.

Для второго числа: Х2=00001101+1=000011102. .

Х1-Х2= 111001112+000011102=111101012

(Х1-Х2)*Х3=111101012*101110102=000000102=210

Ответ: 2

 

 

2006-В6. Переменные Х, Х1, Х2, Х3 имеют размер — байт, тип — знаковый. В шестнадцатеричной системе счисления Х1 = 3416, Х2 = В416, X3 = 6D16. Значение выражения Х = (Х1 — Х2)* Х3 в десятичной системе счисления равно __

Решение. В двоичной системе счисления Х1=3416 = 001101002, Х2=В416=101101002 , Х3=6D16=011011012. Введем обратный код и добавим 1 (дополнительный код, т.к. тип знаковый, следовательно, все числа меньше 0, т.к. старший разряд равен 1) для второго числа: Х2=01001011+1=010011002.

Х1-Х2= 001101002+010011002=100000002

(Х1-Х2)*Х3=100000002*011011012=100000002. Старший разряд меньше единицы, следовательно, число отрицательное. Инвертируем оставшиеся семь разрядов, следующие за старшим, получаем 1111111, прибавляем

единицу, получаем 100000002=12810,, но число отрицательное, получаем окончательно -12810

Ответ: — 128.

 

 

1) Получить внутреннее представление целого отрицательного числа -1607.

Решение. 1) Внутреннее представление положительного числа:

0000 0110 0100 0111

2) обратный код: 1111 1001 1011 1000

3) результат прибавления 1: 1111 1001 1011 1001 – это внутреннее двоичное представление числа -1607. Шестнадцатеричная форма: F9B9.

Ответ: шестнадцатеричная форма: F9B9

 

 

2) Записать внутреннее представление числа 250,1875 в форме с плавающей точкой.

Решение. 1) Переведем его в двоичную систему счисления с 24 значащими цифрами: 250,187510 = 11111010,00110000000000002.

2) Запишем в форме нормализованного двоичного числа с плавающей точкой: 0,111110100011000000000000*1021000. Здесь мантисса, основание системы счисления (210 = 102) и порядок (810 = 10002) записаны в двоичной системе.

3) Вычислим машинный порядок в двоичной системе счисления: Mp2=1000 + 100 0000 = 100 1000.

4) Запишем представление числа в 4-х байтовой ячейке памяти с учетом знака числа:

0

1001000

11111010

00110000

00000000

Шестнадцатеричная форма: 48FA3000.

Ответ: шестнадцатеричная форма: 48FA3000

 

 

3) По шестнадцатеричной форме внутреннего представления числа в форме с плавающей точкой C9811000 восстановить само число.

Решение. 1) Перейдем к двоичному представлению числа в 4-х байтовой ячейке, заменив каждую шестнадцатеричную цифру 4-мя двоичными цифрами:

1100 1001 1000 0001 0001 0000 0000 0000

1

1001001

10000001

00010000

00000000

2) Заметим, что получен код отрицательного числа, поскольку в старшем разряде с номером 31 записана 1. Получим порядок числа:

p = 10010012 – 100000002 = 10012 = 910.

3) Запишем в форме нормализованного двоичного числа с плавающей точкой с учетом знака числа:

-0.100000010001000000000000*21001.

4) Число в двоичной системе счисления имеет вид: -100000010,0012.

5) Переведем число в десятичную систему счисления:

-100000010,0012 =-(1*28+ 1*21+1*2-3)= -258,12510.

Ответ: -258,12510

 

 

2006-В7. Значение переменной А представлено в формате с плавающей точкой в шестнадцатеричной системе счисления А=430F000016. Тип переменной А – single для языков BASIC и PASCAL. Десятичное значение числа А равно ____ .

Решение: 1) Запишем число 430F000016 в двоичном виде.

430F000016 = 01000011000011110000000000002

2) Число будет положительным, так как старший разряд число 0.

3) Выделим машинный порядок (следующие 8 разрядов за битом знака)

100001102=1*27+1*22+1*21=128+4+2=13410

4) Определим истинный порядок по формуле:

<истинный порядок> = <машинный порядок> — 7F16 (12710)

134-127=7

5) Запишем мантиссу, добавив к ней недостающую единицу

1,000111100…….;

6) Запишем число в двоичной системе счисления, учитывая его истинный порядок

1,000111100…*27=10001111,002

7) Переведем полученное число в десятичную систему

10001111,00…2=1*27+1*23+1*22+1*21+1*20=128+8+4+2+1=143

Ответ: 143.

Системы счисления


Что это такое?

Есть много способов для представления одного и того же числового значения. В давние времена люди использовали палочки для подсчета. Позднее научились рисовать палочки на земле и в конечном счете на бумаге. Так что число 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 бита) можно преобразовать в шестнадцатиричную цифру, пользуясь этой таблицей:

 

Десятичное
(основание 10)
Двоичное
(основание 2)
Шестнадцатиричное
(основание 16)
000000
100011
200102
300113
401004
501015
601106
701117
810008
910019
101010A
111011B
121100C
131101D
141110E
151111F

Принято в конец шестнадцатиричного числа добавлять букву «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 0 0 0
1 1 1 1
2 10 2 2
3 11 3 3
4 100 4 4
5 101 5 5
6 110 6 6
7 111 7 7
8 1000 10 8
9 1001 11 9
А 1010 12 10
B 1011 13 11
С 1100 14 12
D 1101 15 13
E 1110 16 14
Ф 1111 17 15
10 1 0000 20 16
11 1 0001 21 17
24 10 0100 44 36
5E 101 1110 136 94
100 1 0000 0000 400 256
3E8 11 1110 1000 1750 1000
1000 1 0000 0000 0000 10000 4096
ЛИЦО 1111 1010 1100 1110 175316 64206

Двоичное в шестнадцатеричное [изменить | изменить источник]

Для изменения числа с двоичного на шестнадцатеричный используется метод группировки.Двоичное число разделено на группы по четыре цифры, начиная справа. Затем эти группы преобразуются в шестнадцатеричные числа, как показано на приведенной выше диаграмме для шестнадцатеричных чисел от 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 шестнадцатеричных чисел.

Шестнадцатеричное в десятичное [изменить | изменить источник]

Существует два распространенных способа преобразования числа из шестнадцатеричного в десятичное.

Первый метод чаще всего выполняется при ручном преобразовании:

  1. Используйте десятичное значение для каждой шестнадцатеричной цифры. Для 0–9 это то же самое, но A = 10, B = 11, C = 12, D = 13, E = 14 и F = 15.
  2. Сохраняйте сумму преобразованных чисел на каждом шаге ниже.
  3. Начать с наименее значащей шестнадцатеричной цифры. Это цифра на правом конце. Это будет первый предмет в сумме.
  4. Возьмем вторую наименьшую значащую цифру. Это рядом с цифрой на правом конце. Умножьте десятичное значение цифры на 16. Добавьте это к сумме.
  5. Сделайте то же самое для третьей младшей значащей цифры, но умножьте ее на 16 2 (то есть на 16 в квадрате или 256).Добавьте это к сумме.
  6. Продолжайте для каждой цифры, умножая каждое место на другую степень 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, но на бумаге оно выглядит длиннее.

  1. Используйте десятичное значение для каждой шестнадцатеричной цифры. Для 0–9 это то же самое, но A = 10, B = 11, C = 12, D = 13, E = 14 и F = 15.
  2. Сохраняйте сумму преобразованных чисел на каждом шаге ниже.
  3. Начните со старшей цифры (цифра в крайнем левом углу). Это первая позиция в сумме.
  4. Если существует другая цифра, умножьте сумму на 16 и добавьте десятичное значение следующей цифры.
  5. Повторяйте вышеуказанный шаг до тех пор, пока цифры не исчезнут.


Пример: 5Fh и 3425h в десятичной системе, метод 1

5Fh в десятичной системе
шестигранник Десятичный
5Fh = (5 х 16) + (15 х 1)
= 80 + 15
5Fh = 95
3425h в десятичной системе
шестигранник Десятичный
3425h = (3 х 4096) + (4 х 256) + (2 х 16) + (5 х 1)
= 12288 + 1024 + 32 + 5
3425h = 13349

Пример: 5Fh и 3425h в десятичной системе, метод 2

5Fh в десятичной системе
шестигранник Десятичный
сумма = 5
= (5 х 16) + 15
сумма = 80 + 15 (без цифр)
5Fh = 95
3425h в десятичной системе
шестигранник Десятичный
сумма = 3
= (3 х 16) + 4 = 52
сумма = (52 х 16) + 2 = 834
сумма = (834 х 16) + 5 = 13349
3425h = 13349

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

Шестнадцатеричное число основано на числе 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: Что такое 2.3 (шестнадцатеричный)?
  • Слева стоит цифра «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 в шестнадцатеричном формате. Это помогает компьютерам сжимать большие двоичные значения таким образом, чтобы их можно было легко преобразовать между двумя системами.

Ниже приведены некоторые типичные преобразования шестнадцатеричных, двоичных и десятичных значений:

Шестнадцатеричное / десятичное преобразование

11
Шестнадцатеричный Двоичный Десятичный
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

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

  1. Найдите наибольшую степень числа 16, которая меньше или равна числу, которое нужно преобразовать, которое будет обозначаться как X.
  2. Определите, сколько раз степень 16, найденная на шаге 1, переходит в X, и запишите это число.
  3. Умножьте число, полученное на шаге 2, на степень 16 и вычтите это значение из X.Это новое значение будет называться Y.
    • Обратите внимание, что число, найденное на шаге 2, будет значением, записанным в разряде для найденной степени 16. Если, например, наибольшая степень числа 16 оказалась равной 16 4 , а число на шаге 2 оказалось равным 3, шестнадцатеричное значение будет иметь число 3 в своем значении разряда 16 4 : 3qrst, где qrst представляет значения разряда от 16 0 до 3 .
  4. Повторите шаги 1-3, используя Y в качестве нового начального значения.Продолжайте процесс до тех пор, пока 16 не будет больше оставшегося значения, и присвойте остаток разряду 16 0 .
  5. Присвойте каждому из значений, найденных на каждой итерации шага 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 выполняется осторожно, шестнадцатеричное вычитание не сложнее десятичного вычитания.Проработайте пример и обратитесь к тексту под ним для получения дополнительных сведений.

БЫВШИЙ:
    D
    5 D 1 C
    3 A F
    =

В первом столбце справа в приведенном выше примере 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. Сводка по системам счисления

9 0321 8

55

55

16
Десятичное Двоичное без знака Восьмеричное Шестнадцатеричное 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 1000
9 1001 11 9 1001
10 1010 12 A 00010000
11 B 00010001
12 1100 14 C 00010010
13 1101 15 D 00010011
D 00010011
E 00010100
15 1111 17 F 00010101

Двоичные и десятичные числа могут быть только целыми или действительными числами.В таблице 5.9 показаны двоичные и десятичные числа для действительного числа, представленного 40 битами в двоичном формате, при этом 24 бита представляют собой целую часть числа, а 16 битов представляют собой дробную часть числа.

Таблица 5.9. Таблица десятично-двоичного преобразования с положительной позицией слева от десятичной точки и отрицательной позицией справа от десятичной точки

00

Двоичная позиция Беззнаковое двоичное число Двоичное взвешивание Десятичное значение
23 100000000000000000000000.0000000000000000 2 23 8,388,608
22 01000000000000000000.0000000000000000 2 22 4,194,304
2100 01000000000000 2100 01000000000000 2100 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
–300000000000000002–3000000000000250000
–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
0000170000

00

–14
000017000000 –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)

Ответы на странице 423. (Всего 20 баллов)

Действия 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 и светодиод для индикации состояния замка (ВКЛ = разблокирован).Изучите конструкцию интерфейса для дверного замка с соленоидным приводом.

Примечание. Сканирование клавиатуры используется в программе 13.1, а приложение блокировки описано в Приложении D. Системы счисления

Системы счисления

Системы счисления

Десятичная система счисления (основание 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:

  1. Переключить все 0 на 1 и 1 на 0 (поиск дополнения до 1)
  2. Добавить 1
100111100 => 011000011
             + 1 
             011000100
 

Чтобы найти шестнадцатеричное дополнение до двух:

  1. Вычтите число из FFFFFFFF
  2. Добавить 1
  FFFFFFFF FFFFFFFF FFFFFFFF
  - 002BCF06   - 00000001   - FFD430FA 
  FFD430F9 FFFFFFFE 002BCF05
  + 1   + 1   + 1 
  FFD430FA FFFFFFFF 002BCF06
 

Арифметика с дополнением до двоек:

Перелив:

Происходит, когда число становится слишком большим для его схемы представления.

Для проверки переполнения:

  1. Преобразование 1 цифры каждого числа в двоичную
  2. Сложить двоичные значения вместе
  3. Если два последних бита переноса совпадают, переполнения нет.
  4. Если они разные, переполнение.
                   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
 
.

alexxlab

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *