Перевод чисел из одной системы счисления в другую

40

2.70.    1101  10002—0011 00112=______ .

2.71.    10012 *11012=»_______ .

1.72. Когда числа со знаком   помещаются   в   регистр микропроцессора, 1 в старшем   бите  означает, что число      (положительное, отрицательное).

1.73.  Запись в дополнительном   коде   0111 1110 представляет собой _ (отрицательное,   положительное)

число.

2.74.    Записать следующие десятичные числа со знаком в дополнительном коде: а) +12; б) —12.

2.75.    Записать следующие числа (в дополнительном коде) десятичными числами со знаком: а) 0111 0100; б) 1101 1101.

2.76.    Сложить следующие десятичные числа со знаком, используя метод дополнительного кода:

а) (+13)      б) (+17)       в) (-6)

   +             + +            +

 (+8)           (-8)            (-14).

2.77.    Сложить следующие десятичные числа со знаком, используя метод дополнительного кода:

а) (+13)      б) (+19)

  -      - 

     (+5)           (+29).

2.78.    Байт — это группа из______ бит.

2.79.    Тетрада состоит из______ бит.

2.80.    Наиболее широко распространена длина слова микропроцессора_____ (8, 32) бит.

2.81.    См. рис. 1.7, а. На этом рисунке приведена функциональная схема (микропроцессора, микро-ЭВМ).

2.82.    См. рис. 1.7, б. Как интерпретирует микропроцессор слово 1101 0011  по адресу 10410  ?

2.83.    Сокращение ASCII читается по русски  ______ .

2.84.    Для вывода на видеотерминал используется специальный код _______.

Решения

1.53. а) 0; б) 2; в) 3; г) 7; д) 9; е) 12. 1.54. 10510. 1.55. 1111002. 1.56. Шестнадцатеричной. 1.57. 1000 11012. 1.58. 5F16. 1.59. 1010 1110. 1.60. ВС16. 1.61. 6010. 1.62. 5А16. 1.63. 111001 0110002. 1.64. 45628. 1.65. 4710. 1.66. 778. 1.67. 1001 0010ДДК. 1.68. 8610. 1.69. а) 1111 11112; б) 1010 10112. 1.70. 1010 01012. 1.71. 11101012. 1.72. Отрицательное. 1.73. Положительное. 1.74. а) 0000 1100; б) 1111 0100. 1.75. а) +116к, б)—35,0. 1.76. а) 0001 0101 (доп. код); б) 1111 0110 (доп. код); в) 1110 1100 (доп. код). 1.77. а) 0000 1000 (доп. код); б) 1111 1000 (доп. код). 1.78. 8. 1.79. 4. 1.80. 8. 1.81. Микро-ЭВМ. 1.82. Он извлекает из памяти слово 1101 0011, полагая, что это новая команда. Слово 1101 0011 декодируется микропроцессором как команда ВЫВЕСТИ данные, содержащиеся в аккумуляторе, в порт, адрес которого будет находиться в следующей ячейке памяти. 1.83. Американский стандартный код обмена информацией. 1.84. ASCII или буквенно-цифровой.

Лабораторная работа № 1

«Система счисления»

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

Цель  работы. Изучение систем счисления, используемых в вычислительной технике и правил перевода чисел из одной системы счисления в другую.

  При использовании  ЭВМ  существенным является знание систем счисления. Системы счисления, которыми мы пользуемся в настоящее время, основаны на методе, открытом индусскими математиками около 400 г.  н.э.  Арабы стали пользоваться подобной системой, известной как арабская система счисления около 800 г.н.э., а примерно в 1200 г.н.э. ее начали применять в Европе и называют десятичной системой счисления.

  Известны другие системы счисления, основанные на тех  же принципах, что и десятичная, двоичная, восьмеричная и шестнадцатеричная. Они обычно используются в  ЭВМ, поскольку  вычислительные машины построены на схемах с двумя устойчивыми состояниями. В настоящей лабораторной работе предлагается  изучить  указанные системы счисления, а также методы преобразования чисел из одной системы счисления в другую.

Описание лабораторной работы

Лабораторная работа представлена программой- эмулятором, работа с которой осуществляется в интерактивном режиме.

1. Запустим Программу-Эмулятор Emu8086.

1.2. В меню Math, выберем подменю Nunber Convertor

1.3. Переведем число 4710 в двоичную систему счисления 101111

1.4. Переведем число 8710 в восьмеричную систему счисления 127.

2. Воспользуемся программой-калькулятором "HOD Calculator" (ХОД Калькулятор).

2.1. Переведем число 4710 в двоичную систему счисления 101111

В первой строке число 4710 десятичное число 47(d), во второй – двоичное число 101111(b)

2.2. Переведем число BAD16 в десятичную систему 2989

В первой строке число шестнадцатеричное число BAD16(h), во второй – десятичное число 2989(d)

2.3. Воспользуемся программой-калькулятором "QuickConv". Переведем число 8710 в восьмеричную систему 127

3. Произведем суммирование чисел: 5+7

3.1. В меню Math, выберем подменю Expression Evaluator.

Содержание отчета

   1.Краткое описание особенностей изученных систем счисления.

   2.Результаты преобразования чисел из одной системы  счисления в другую.

Контрольные вопросы

   1.Чем отличаются позиционные системы счисления от непозиционных?

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

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

   4.Переведите:

   101101.101в десятичную систему 45.625

   4710      в двоичную систему      101111

   0.1410    в двоичную систему      0.001000111101

   24.3110   в двоичную систему      11000.010011110101

     5.Переведите:

87.110         в восьмеричную систему 127.0631463

1011.12        в восьмеричную систему 13.4

124.68         в двоичную систему 100100100.0110

62.428 в двоичную систему 100100.01000010

6.Переведите:

BAD.DAD 16 в десятичную систему    2989.8547363

374.971 10 в шестнадцатеричную   176.F89374BC6A8

1011.101101 2       в шестнадцатеричную   B.B4

8AF.CB4 16 в восьмеричную систему 4257.626377776245

Список используемой литературы

1. Балашов Е. П., Григорьев В. Л., Петров Г. А. Микро - и миниЭВМ. Л.: Энергоатомиздат, 1984. 376с.

2. Микропроцессоры: В 3-х кн. / Под ред. Преснухина. М.: Высшая школа, 1986. Кн.1. 495 с. Кн. 2. 383 с. Кн. 3. 351с.

3. Токхайм Р. Микропроцессоры: Курс и упражнения /Пер. с англ. Под ред. Грасевича. М.: Энергоатомиздат, 1987. 338с.

4. Казагачев В.Н. Основы микропроцессорной техники. Актюбинск, 2005г. – 363с.

5. Морисита И. Аппаратные средства микроЭВМ / Пер. с япон. М.: Мир, 1988. 279с.

6. Соучек Б. Микропроцессоры и микроЭВМ / Пер. с англ. Под ред. А. И. Петренко. М.: Сов. радио, 1979. 517с.

7. Гибсон Г., Лю Ю.-Ч. Аппаратные и программные средства микроЭВМ / Пер. с англ. В. Л. Григорьева, Под ред. В. В. Сташина. М.: Финансы и статистика, 1983. 255с.

8. Гивоне Д., Россер Р. Микропроцессоры и микрокомпьютеры: Вводный курс / Пер. с англ. М.: Мир, 1983. 463с.

9.Чернов В.Г. Математические и логические основы ЭВМ. Методические указания к самостоятельной работе студентов. ВПИ, Владимир 1992-47с.

Министерство образования и науки РК

Актюбинский филиал Казахской Академии транспорта и коммуникаций

Методические указания к практическим занятиям  по дисциплине

"Основы микропроцессорной техники"

Раздел 1. "Числа, кодирование"

 

39

2.52.    Если маскировать три старших разряда цифр от 0 до 9 в коде ASCII, что оставит маска в итоге?

Решения

1.50. Буквенно-цифровым. 1.51. См. табл. 1.11: 011 1001. 1.52. Останется 4 немаскированных бита, составляющих двоичный или двоично-десятичный эквивалент каждого числа (см. табл. 1.11).

Дополнительные упражнения к гл. 2

2.53.   Дать на память десятичные эквиваленты каждого из следующих двоичных чисел: а) 0000; б) 0010; в) 0111; г) 0111; д) 1001; е) 1100.

2.54.   0110  10012=_______ .

2.55.   6010=_________ .

2.56.   Двоичное число 1001 1100 представляет собой число 9С в________ записи.

1.57.  816=_______ .

1.58.0101 11112=_______ .

2.59.   АЕ16=_________ .

2.60.   1011 11002=________ .

1.61.3С16=________ .

2.62.   9010=_________

2.63.   71308=________ .

2.64.   1001 0111 00102=_______ .

2.65.   578=_________ .

2.66.   6310=_________ .

1.67.9210=________ ДДК

2.68.    1000 0110ддк =_________

2.69.    Выполнить сложение следующих двоичных чисел: а)  1100 0011+0011: 1100; б) 0110 1110+0011 1101.

АКТОБЕ-2006

Казагачев В.Н. Методические указания к лабораторной работе №1 " Правила перевода чисел из одной системы счисления в другую" по дисциплине "Основы микропроцессорной техники". АФ КазАТК, Актобе-2006, 40с.

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

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

Предназначены для студентов 3-го курса дневного обучения «АТС» и электротехнических специальностей, изучающих основы микропроцессорной техники и микропроцессорные системы управления.

Рецензенты:

 

38

3

команд.

Таблица 1.11. Выдержка из алфавитно-цифрового кода ASCII

Символ

Код ASCII

Символ

Код ASCII

Символ

Код ASCII

Массив

 !

 »

 #

 $

 %

 &

 ,

(

)

*

+

,

__

 .

/

010 0000 010 0001 010 0010 010 0011 010 0100 010 0101 010 0110 010 0111 010 1000 010 1001 010 1010 010 1011 010 1100 010 1101 010 1110 010 1111

0

1

2

3

4

5

6

7

8

9

А

В

С

D

 Е

F

G

 Н

011 0000 011 0001 011 0010 011 0011 011 0100 011 0101 011 0110 011 0111 011 1000 011 1001 100 0001 100 0010 100 0011 100 0100 100 0101 100 0110 100 0111 100 1000

I

J

K

L

м

N

 0

P

Q

R

S

Т

U

V

W

X

У

Z

100 1001 100 1010 100 1011 100 1100 100 1101 100 1110 100 1111 101 0000 101 0001 101 0010 101 0011 101 0100 101 0101 101 0110 101 0111 101 1000 . 101 1001 101 1010

Упражнения

2.50.    Двоичный код, используемый обычно для кодирования цифр и букв, называется _________ кодом.

2.51.    Нуль в коде ASCII представляется как 011 0000, 9 — как  .

Рассмотрено и одобрено методическим бюро Актюбинского филиала Казахской Академии транспорта и коммуникаций

протокол №____ от "____"_________________2006г.

Глава 1. Числа, кодирование

1.1. Двоичные числа

Цифровые вычислительные машины работают с двоичными числами. Двоичная система счисления или система с основанием 2 использует только цифры 0 и 1. Эти двоичные числа названы битами (от binary digit). Физически в цифровых электронных системах бит 0 представлен напряжением LOW (низким), а бит 1—напряжением HIGH (высоким).

Человеческая деятельность предполагает использование десятичной системы счисления. Десятичная система, или система с основанием 10, содержит 10 цифр (от 0 до 9). Она также характеризуется значением позиции (или весом). В табл. 1.1 показано, например, что десятичное число 1327 равно одной тысяче, плюс три сотни, плюс два десятка, плюс семь единиц (1000+300+20+7=1327).

Двоичная система обладает также свойством уравновешивания.

Таблица 1.1. Значения позиций десятичных чисел

Степень основания

103    102    101  100

Значения позиций

1000   100   10   1

Десятичные

1      3     2    7

1000 + 300 + 20 + 7 = 1327

 

37

4

2.49.     Как на рис. 1.7 б МП интерпретирует слово 0011 0111 по адресу 10210?

Решения

1.44. Байт. В некоторых случаях эта группа может составлять также слово. 1.45. Слова. 1.46. Данных. 1.47. Двоичное число, двоичное число со знаком (записанное в -дополнительном коде), двоично-десятичное число, буква алфавита, команда, адрес памяти, адрес порта ввода/вывода. 1.48. Он извлекает заполненное слово, ожидая, что оно ему укажет, из какого порта он должен взять данные. Это слово укажет ему, что речь идет о порте 1. 1.49. Он извлекает слово 0011 0111, ожидая новой команды. Это слово декодируется микропроцессором как команда ПЕРЕДАТЬ (MOVE) данные из аккумулятора в ячейку памяти, адрес которой приводится; в следующей ячейке памяти.

1.8. Буквенно-цифровой код

Когда микро-ЭВМ взаимодействует с телетайпом или видеотерминалом, необходимо прибегать к коду, который одновременно включает в себя числовые и алфавитные знаки. Такие коды называются буквенно-цифровыми.

Наиболее распространен буквенно-цифровой код ASCII (произносится АСКИ) — стандартный американский код обмена информации.

В табл. 1.11 приведена выдержка 7-разрядного кода ASCII. В этот список входят 7-разрядные коды цифр, прописных букв и знаков пунктуации. Полный код ASCII включает кодирование строчных букв и признаков

В табл. 1.2 приведены десятичные значения первых четырех двоичных позиций. Двоичное число 1001 (произносится: один, нуль, нуль, один) преобразовано, таким образом, в свой десятичный эквивалент 9. Бит единицы двоичного числа в табл. 1.2 называется младшим битом (МБ), бит восьмерки— старшим битом (СБ).

Таблица 1.2. Значения позиций двоичных чисел

Степень основания

23   22  21  20

Значения позиций

8   4   2   1

Двоичное                               Десятичное                             

1   0   0   1

8 + 0 + 0 + 1 = 9

В табл. 1.3 приведены десятичные числа от 0 до 15, а также их двоичные эквиваленты. Те, кто работает в области использования ЭВМ, должны, по меньшей мере, запомнить эти двоичные числа.

Таблица 1.3. Десятичные числа и их двоичные эквиваленты

десятичные

двоичные

10

8 4 2 1

0

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

0 0 0 0

0 0 0 1

0 0 1 0

0 0 1 1

0 1 0 0

0 1 0 1

0 1 1 0

0 1 1 1

1 0 0 0

1 0 0 1

1 0 1 0

1 0 1 1

1 1 0 0

1 1 0 1

1 1 1 0

1 1 1 1

 

36

5

2)     ПОМЕСТИТЬ (STORE) эти данные в ячейку памяти 200;

3) ВЫВЕСТИ  (OUTPUT) эти данные в порт 10.

Способ, по которому  МП интерпретирует  содержимое ячеек памяти, детализирован на рис. 1.7, б. Команды программы помещены в шесть верхних ячеек (100—105).

Нижняя ячейка памяти (20010) является местом размещения данных. В этом случае код ASCII для буквы А помещен в эту ячейку памяти.

В итоге важно отметить, что биты сгруппированы в слова внутри микро-ЭВМ. Эти слова памяти программы интерпретируются микро-ЭВМ одно за другим последовательно.

Программисту очень важно знать, как микро-ЭВМ располагает и интерпретирует данные. У каждого МП есть свой состав команд, но у всех микропроцессоров доступ к ячейкам памяти осуществляется одинаково.

Упражнения

2.44.     Группа из 4 бит составляет тетраду,  а группа из 8 бит -___.

2.45.     Длина _________  является важной особенностью МП. Она соответствует числу передаваемых, обрабатываемых бит одной сущности.

2.46.     Обратиться к рис. 1.7, а. Байт данных, помещенный в какую-либо ячейку памяти, называется словом

2.47.     Дать список семи возможных толкований 8-разрядного слова в памяти.

2.48.     Как на рис. 1.7, б МП интерпретирует слово 0000 0001 по адресу 10110 ?

8

9

10

11

12

13

14

15

0 0 0 0

0 0 0 1

0 0 1 0

0 0 1 1

0 1 0 0

0 1 0 1

0 1 1 0

0 1 1 1

1 0 0 0

1 0 0 1

1 0 1 0

1 0 1 1

1 1 0 0

1 1 0 1

1 1 1 0

1 1 1 1

Как преобразовать двоичное число 1011 0110 (т.е. один, нуль, один, один, нуль, один, один, нуль) в его десятичный эквивалент? Процедура преобразования выполняется в соответствии с табл. 1.4. Десятичные значения каждой позиции записаны под каждым битом, затем десятичные числа суммируются (128+32+16+4+2=182), что дает 182.

Таблица 1.4. Двоично-десятичные преобразования

Степень

основания

27

26

25

24

23

22

21

20

Значение

позиций

128

64

32

16

8

4

2

1

Двоичное

Десятичное

1

128

+

1

32

+

1

16

0

+

1

4

+

1

2

0

=182

Обычно основание системы счисления указывается индексами. Таким образом, число 1011 01102 является двоичным (или основания 2), а число 18210 — десятичным: 1011 01102 = 18210.

 

35

6

двоично-десятичное число; 4)  буква алфавита; 5) команда; 6) адрес памяти; 7) адрес порта ввода или вывода.

Рассмотрим верхнюю ячейку памяти на рис. 1.7, а, т. е. ячейку 0110 0100г. Ее содержимым является 1101 1011. Это двоичное слово могло бы быть интерпретировано как

1)     двоичное число 1101 10112=21910;

2)     двоичное  число со знаком 1101 1011= -3710  (здесь подразумевается дополнительный код);

3) двоично-десятичное   число — это   невозможно,   так как ни 1101, ни 1011 не представляет двоично-десятичный код;

4)     буква алфавита — это   не   соответствует ни одной букве   кода ASCII  (ASCII — широко   распространенный буквенно-цифровой код, см. § 1.9);

5)     командой, 1101 1011—команда  INPUT (ВВЕСТИ) для хорошо известного процессора Intel 8080/8085;

6)     адрес ячейки памяти 1101 10112=DB16=21910;

7) адрес порта ввода или вывода 1101 1011з=219ю-Оператор МП Intel 8085 включит  счетчик команд с адреса 10010 (0110 01002), МП извлечет затем декодирует слово в памяти 11Q1 1011 как команд/ ВВЕСТИ (INPUT) данные. Микропроцессор обратится  затем к следующему адресу  10110  (0110 01012). Содержимое памяти на рис. 1.7,о то же, что и на рис. 1.4. Программа на рис. 1.4 выполняет следующие команды:

1)     ВВЕСТИ (INPUT) данные,  приходящие  из порта 1;

Рис. 1.1. Двоично-десятичные преобразования

Как преобразовать десятичное 155 в его двоичный эквивалент? Процедура преобразования приведена на рис.1.1.

Десятичное 155 сначала делится на 2, что дает нам частное 77 и остаток 1. Этот остаток становится МБ двоичного числа и помещается в эту позицию (см. рис. 1.1). Затем частное (77) перемещается, как показывает стрелка, и становится следующим делимым. Затем каждое частное последовательно делится на 2 до тех пор, пока не получится частное, равное 0, и остаток, равный 1 (см. предпоследнюю строку на рис. 1.1). Последняя строка на рис. 1.1 дает нам результат 15510=1001 10112.

Упражнения

Большинство людей в своей практической
 

34

7

Рис. 1.7. -Представление памяти микро-ЭВМ:

а -типичное содержание; б — интерпретация содержимого МП.

семью параллельными проводниками, составляющими шину   данных. На рис. 1.7, а приведено   состояние, которое  могла бы иметь память 8-разрядной микро-ЭВМ. Заметим, что каждая адресуемая позиция (названная содержимым)   составляет группу из 8 бит информации. Каждый байт называется запоминаемым словом, поскольку МП является 8-разрядным    устройством. Каждое запоминаемое слово имеет особое значение, когда оно извлечено и декодировано микропроцессором. Содержимое памяти на рис. 1.7, а может иметь один из следующих смыслов: 1) двоичное число; 2) двоичное число со знаком; 3)

2.1.деятельности использует десятичную систему, цифровая ЭВМ использует ______ систему.

2.2.    В двоичной системе бит означает _____ .

2.3.    Число 10010 является ______ числом.

2.4.    Записать двоичное число один, один, нуль, нуль в цифровой форме.     

2.5.    Что означает сокращение МБ?

2.6.    Преобразовать в десятичный код следующие двоичные числа: а) 0001; б) 0101; в)  1000; г)  1011;   д)  1111; е) 0111.

1.7. Преобразовать в десятичный код следующие двоичные    числа:   а)  10000000;   6)00010000; в) 00110011; г) 0110 0100; д) 0001 1111; е) 1111 1111.

1.8. Преобразовать в двоичный код следующие десятичные числа: а) 23; б) 39; е) 55; г) 48.

1.9. 20410=_______ 2

1.10. 1110 11102 =_____ 10

Решения

1.1. Двоичную или основания 2. 1.2. Двоичную цифру (binary digit). 1.3. Десятичным (основания 10). 1.4. 11002. 1.5. Младший бит. 1.6. Обратимся к табл. 1.3: a) 00012=110; б) 01012=510; в) 1000s=810; г) 10112= = 1110; д) 11112=1510; е) 01112=710. 1.7. Следуем процедуре, приведенной в табл. 1.2: а) 1000 00002=12810; б) 0001 00002=1610; в) 0011 00112=5110; г) 0110  01002=10010; д) 0001 11112=3110; е) 1111 11112=25510.1.8. См. рис. 1.1:

а) 2310: 2= 11, остаток 1 (МБ)      б) 3910:2=19, остаток 1  (МБ)

 

33

8

(-51)              код и сложить 1100 1101(доп.код).

1.7. Группировка бит

Одна отдельная двоичная цифра называется битом, сгруппированных 4 бит составляют тогда 8 бит — байт.

Входящий в состав МП аккумулятор является очень важной частью всего МП. Обычно МП содержат 8-разрядный аккумулятор. Длина слова МП составляет тогда 8 бит, т. е. в этом случае 1 байт составляет слово. Микропроцессор может иметь длину слова в 4, 8, 16 и даже 32 бит. Таким образом, 16-разрядный МП имеет длину слова 2 байт или 16 бит. Слово — это одна группа обрабатываемых бит, единое выражение или одна команда микропроцессора. Восьмиразрядный микропроцессор переносит и помещает все данные группами из 8 бит, которые передаются во-

11:2= 5, остаток 1        19   : 2= 9, остаток 1;

5 :2= 2, остаток 1        9   :2= 4, остаток 1;

2   : 2= 1, остаток 0     4:2=2, остаток 0;

1 :2= 0, остаток 1 (СБ); 2 :2- 1, остаток 0;

1 :2= 0. остаток 1 (СБ);

в) 5510:2=27, остаток 1  (МБ) г) 4810: 2=24, остаток 0 (МБ);

27   :2=13, остаток 1;   24    :2 = 12, остаток 0;

13    :2= 6, остаток 1;    12. :.2= 6, остаток 0;

6   : 2= 3, остаток 0;    6    : 2= 3, остаток 0;

3   : 2=  1, остаток 1;   3   : 2=  1, остаток 1;

1:2= 0, остаток 1  (СБ); 1 : 2= 0, остаток 1 (СБ). 1.9. Обратиться к рис. 1.1: 20410 =1100 11002    1.10. Обратиться к табл. 1.2: 1110 11102=23810.

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

Ячейка памяти типичной микро-ЭВМ может содержать двоичное число 1001 1110. Такая длинная цепь нулей и единиц сложна для запоминания и неудобна для ввода с клавиатуры. Число 1001 1110 могло бы быть преобразовано в десятичное, что дало бы 158ю, но процесс преобразований занял бы много времени.

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

Шестнадцатеричная система счисления (hexadecimal)', или система с основанием 16, использует 16 символов от 0 до 9 и А, В, С, D, Е, F. В табл. 1.5 приведены эквиваленты десятичных,
 

32

9

             +        +                             +       +

              (—4)  1111 1100           (—41)  1101 0111

(—7) 11111 1001(доп.код);     (—54) 11100 1010(доп. код).

Пренебречь переполнением.    Пренебречь переполнением.

1.42.  Следовать процедуре, приведенной в § 1.7:

б)    (+7)                    0000 0111

                  дополнительный  +

(+2) = 0000 0010-----------      11111110

———               код и сложить         

(+5)                         10000 1110(доп. код).

Пренебречь•переполнением.

б)   (+113)                    0111 0001

+                   дополнительный +

(+50) = 0011 0010-----------    11001110

'                   код и сложить       

10011 1110(доп.код)

Пренебречь переполнением,

1.43.  Следовать процедуре, приведенной в § 1.7:

а)    (+3)                    0000 0011

    -                       +

     (+8) = 0000 1000 дополнительный  1111  1000

—                 код и сложить       1111 1011(доп.код);

б)    (+12)                   0000 1100

      (+63) = 0011 1111 дополнительный+1100 0001

двоичных, и шестнадцатеричных чисел.

Заметим из табл. 1.5, что каждый шестнадцатеричный символ может быть представлен единственным сочетанием четырех бит, Таким образом, представлением двоичного числа 1001 1110 в шестнадцатеричном коде является число 9Е. Это значит, что часть 1001 двоичного числа равна 9, а часть 1110 равна Е (конечно, в шестнадцатеричном коде). Следовательно, 1001 11102=9E16. (He следует забывать, что индексы означают основание системы счисления.)

-Как преобразовать двоичное число 111010 в шестнадцатеричное? Надо начать с МБ и разделить двоичное число на группы из 4 бит. Затем надо заменить каждую группу из 4 бит эквивалентной шестнадцатеричной цифрой: 10102=А, 00112=3, следовательно, 1110102= 3A16.

Как преобразовать шестнадцатеричное число 7F в двоичное? В этом случае каждая шестнадцатеричная цифра должна быть заменена своим двоичным эквивалентом из

Таблица 1.5. Десятичные, шестнадцатеричные и двоичные эквиваленты

Десятичные

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

Двоичные

ые

8

4

2

1

 

31

10

     -           -

(+2)             (+50).

1.43.  Вычесть следующие десятичные числа со   знаком, используя метод дополнительного кода:

а) (+3)       б) (+12)

-                - (+8)             (+63).

____         _________      

Решения

1.38. Следовать процедуре, приведенной в § 1.7:

а)(+7)   0000 0111         б) (+31)      0001 1111

(+1)     0000 0001            (+26)      0001 1010

(+8)     0000 1000 (доп. код);     (+57)     0011  1001(доп. код).

1.39.  Следовать процедуре, приведенной в § 1.7:

а) (+8)   0000 1000         б) (+89)     0101 1001 +           +                        +            +

(-5)    1111 101                (-46)   1101 0010

(+3) 10000 0011 (доп. код);    (+43) 10010 1011(доп. код).

Пренебречь переполнением.         Пренебречь переполнением.

1.40.  Следовать процедуре, приведенной в § 1.7:

а) (+1)  0000 0001         б) (+20)  0001 0100

(—6)  1111 1010               (—60)  1100 0100

(—5)  1111 1011 (доп. код);    (—40)  1101 1000(доп. код).

1.41.  Следовать процедуре, приведенной в § 1.7:

а)    (_3)  1111 1101         б) (—13)  1111 0100

0

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

0

1

2

3

4

5

6

7

8

9

А

В

С

D

E

F

0

0

0

0

0

0

0

0

1

1

1

1

1

1

1

1

0

0

0

0

1

1

1

1

0

0

0

0

1

1

1

1

0

0

1

1

0

0

1

1

0

0

1

1

0

0

1

1

0

1

0

1

0

1

0

1

0

1

0

1

0

1

0

1

 

30

11

затем, как обычные двоичные числа, что дает 1111 1100, а согласно табл. 1.10 1111 1100=—410.

Упражнения

1.38.  Сложить следующие десятичные числа со знаком, используя метод дополнительного кода:

а) (+7)       б) (+31)

 +              +

   (+1)          (+26)

______         ______.

1.39.  Сложить следующие десятичные числа со знаком, используя метод дополнительного кода:

а) (+8)       б) (+89)

+             +

(-5)       (-46).

1.40.  Сложить следующие десятичные числа со знаком, используя метод дополнительного кода:

а) (+1)       б) (+20) +                +

(-6)       (-60).

1.41.  Сложить следующие десятичные числа со знаком, используя метод дополнительного кода:

a) (-3)       б) (-13)

+                +

(-4)             (-41).

____            ______

1.42.  Вычесть следующие десятичные числа со знаком, используя метод дополнительного кода:

а) (+7)       б) (+113)

4 бит. В примере двоичное число 0111 заменено шестнадцатеричной цифрой  7, а 11112 заменяет F16, откуда 7F16=  1111 01112.

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

Таблица 1.6. Преобразование шестнадцатеричного числа в десятичное

 Степень шестнадцати   

163

162

161

160

Значение позиции

4096

256

16

1

Шестнадцатеричное

Десятичное

   2

4096

x

   2

8192

+

  С

256 X 

12

3072

+

6 16 X 6

96

+

Е

1

X

14

-

14

=1137410

Преобразуем шестнадцатеричное число 2С6Е в десятичное. Процедура действий соответствует табл. 1.6. Значениями позиций первых четырех шестнадцатеричных цифр являются соответственно слева направо 4096, 256, 16 и 1. Десятичное число содержит 14 (Е]6) единиц, 6 чисел 16, 12 (C16) чисел 256 и 2 числа 4096. Каждая цифра умножается на соответствующий ей вес, получается сумма, которая и дает нам десятичное число 11374.

Преобразуем десятичное число 15797 в
 

29

12

0101. В дополнительный код (инвертировать и добавить 1) должно быть преобразовано число 00000101, что дает 1111 1011. Затем первое число 0000 1000 складывается с дополнительным кодом второго 1111 1011, как с обычным двоичным числом, что дает 1 0000 0011:

1-е число   (+8)                          0000 1000

—                                                Дополнительный код 2-е число   (+5)        ------------ _     1111 1011

(+3)                                      1 0000 0011

Пренебречь переполнением.

Старший бит является переполнением регистра, им пренебрегаем, что дает результат 0000 0011 = +310. Заметим, что второе число было представлено в дополнительном коде, затем сложено с первым. Используя дополнительный код и сумматор, микропроцессор выполняет вычитание.

Вычтем теперь большее десятичное число +6 из десятичного числа +2:

1-е число     (+2)        _                  0000 0010

                            -                            Дополнительный код  +

2-е число     (+6)=00000110 —                 1111 1010

                              (—4)      1111 1100

Дополнительный код первого числа +2=0000 0010, второе число +6=0000 0110, его дополнительный код (инверсия и добавление 1)—Л111 1010. Оба эти кода сложены

шестнадцатеричное. На рис. 1.2 показана процедура   действий. В первой строке 1579710 разделено на 16, что дает частное 98710 и остаток 510,

Рис. 1.2. Десятично-шестнадцатеричное преобразование

который преобразуется затем в свой шестнадцатеричный эквивалент (510=516) и становится цифрой младшего разряда (МР) шестнадцатеричного числа. Первое частное (987) становится делимым во второй строке и снова делится на 16, что дает частное 61 и остаток 11 или шестнадцатеричное В. В третьей строке 61 делится на 16, дает частное 3 и остаток 1310 или D16, а в четвертой строке делимое 3 делится на 16, дает частное 0 и остаток 310 или 316. Когда частное равно 0, как в четвертой строке, преобразование заканчивается. 316 становится цифрой старшего разряда (СР) результата, т.е. 3DB516.

Упражнения

2.11.     Шестнадцатеричная запись широко используется как сокращенная форма записи   ____ (двоичных, десятичных) чисел.

2.12.     Шестнадцатеричная система имеет основание____

 

28

13

                                              Пренебречь переполнением.

Старший бит является переполнением 8-разрядного регистра, и им можно пренебречь. Получаем сумму 0000 0100 или +410.

Сложим десятичные числа +3 и —8. Согласно все той же табл. 1.10 +3=0000 0011 и —8=1111  1000. Их дополнительные коды 0000 0011 и 1111 1000 складываются, как обычные двоичные числа, что дает 1111 1011=—510:1-е число(+3)   0000 0011

                           +          +

                         (-8)     1111 1000

2-е число                (—5)   1111 1011

Сложим десятичные числа —2 и —5. В дополнительном   коде согласно табл. 1.10—2=1111 1110 и—5=1111 1011. Два числа 1111  1110.и 1111  1011 складываются, как обычные десятичные числа, что дает 1 1111 1001:

1-е число     (-2)     1111 1110

                   +         +

2-е число      (-5)    1111 1011

                      (-7)  1 1111 1001

                      Пренебречь переполнением.

Старший бит результата является переполнением 8-разрядного регистра, и им пренебрегаем. Таким образом, суммой двух чисел 1111 1110 и 1111 1011 в дополнительном коде будет 1111 1001. Согласно табл. 1.10 сумма 1111 1001=—710.

Вычтем теперь десятичное число +5 из десятичного числа +8. Первое число +8=0000 1000, второе +5=0000

2.13.      Записать следующие шестнадцатеричные числа в двоичной форме: а) С; б) 6; в) F; г) Е; д) 1А;  е) 3D; ж) АО; з) 8В; и) 45; к) D7.

2.14.   Преобразовать следующие двоичные числа в шестнадцатеричный код: а)  1001; б)  1100;   в)  1101; г)  1111; д) 1000 0000; е) 0111  1110; ж) 001 0101; з) 1101 1011.

2.15.   Преобразовать следующие шестнадцатеричные числа в десятичный код: а) 7Е; б) DB; в) 12А3; г) 34CF.

1.16. 21710=_______ 16.

1.17.48373,0=_______ 16.

Решения

1.11. Двоичных 1.12. 16. 1.13. Используя табл. 1.5 и процедуру, приведенную § 1.2, получаем: а) СН=11022; б) 6Н=01102; в) РН= 11112; г) Е2Н=1110 00102; д) 1АН=0001 10102; е) 3DH=0011 11012; ж) АОН=1010 0000; 

з) 8ВН=1000 10112; и) 45Н=0100 01012; к) D7H=1101 01112.:

1.14. а)  11012=9Н;   б)  11002=СН;   в)  11012=DH;   г)  11112=FH; д) 1000 00002=80Н; е) 0111 11102=7ЕН;      ж) 001 01012=15Н; з) 1101 10112=DBH.

1.15. а) 7ЕН=(16*7) + (1*14) = 12610; б) DBH=(16*13) + (1 *14)=21910; в) 12A3H=(4096*1) + (256*2) + (16*10)+(1*3) = 4771010; г) 34CFH= (4096*3) -Н (256*4) + (16* 12) + (1*15) =  13519,0.

2.16. 21710=D9H— действия следующие: 21710: 16=13, остаток 910=9Н (МР); 1310: 16= 0, остаток 1310=DH (CP).

2.17. 4837310: 16=3023, остаток   510=5Н (МР);

 

27

14

инкрементирования (добавления 1 к числу) и сложения двоичных чисел. Микропроцессор не приспособлен для прямого вычитания. Он использует сумматоры и для выполнения вычитания оперирует над дополнительным кодом.

Сложим десятичные числа +5 и +3. Рассмотрим процедуру действий в случае одновременного сложения чисел в десятичном и в дополнительном кодах:

1-е число (+5) 0000 0101

                +       +

2-е число      (+3)   00000011 

               (+8)   0000 1000

Согласно табл. 2.l0 +5=0000 0101 в   дополнительном коде аналогично +3=0000 0011. Тогда числа в  дополнительном коде 0000 0101   и   0000 0011 складываются,  как обычные двоичные числа, давая сумму 0000 1000 в дополнительном коде, т.е. 0000 1000=+810.

Пусть надо сложить десятичные числа +7 и —3. Согласно табл. 1.10 +7 = 0000 0111 и —3 = 1111 1101 соответственно в дополнительном коде. Они затем складываются, как обычные двоичные числа, и результат 1 0000 0100 получается в дополнительном коде:

1-е число               (+7)     0000 0111

                                                        +           +

 2-е число              (-3)     1111 1101

                                                           (+4)    1 0000 0100

3023   : 16= 188, остаток 1510=FH; 188   :16= 11, остаток с 1210=СН; 11   : 16= 0, остаток 1 1110= ВН (СР). Таким образом, 4837310=BCF5H.

1.3. Двоично-десятичные числа

С целью удобства преобразования чистые двоичные числа представляются десятичными либо шестнадцатеричными. Однако двоично-десятичное преобразование — операция не простая. В калькуляторах, магистралях и числовых приборах, когда на доступных пользователю выходах и входах широко распространены десятичные числа, для их представления используют специальный двоично-десятичный код (ДДК). В табл. 1.9 приведено несколько десятичных чисел и соответствующих им двоично-десятичных эквивалентов (система 8421). Этим определяются веса позиций каждого из четырех бит ДДК (используют другие ДДК, например 5421 и плюс 3).

Таблица 1.9. Двоично-десятинный код 8421

Десятичные числа

Двоично-десятичные числа

8 4 2 1

0

1

2

0 0 0 0

0 0 0 1

0 0 1 0

Запишем десятичное число 3691 в ДДК 8421. Каждая десятичная цифра преобразуется прямо в свой двоично-десятичный эквивалент из 4 бит, и преобразования дают 369110=0011 0110 1001 0001ддК:

 

26

15

д) —5=1111 1110; е) —128 = 1000 0000. 1.35. В соответствии с рекомендациями § 1.6 имеем следующие результаты: а) этап 1 (преобразование десятичного числа в двоичный код): 1010=  0000 10102; этап 2 (получение обратного кода): 0000 1010-1111 0101; этап 3 (добавление 1): 1111 0101 + 1 = 1111 0110 (доп. код); б) этап 1: 2110=0001 01012; этап 2: 0001 0101-1110 1010; этап 3: 1110 1010+1 == 1110 1011 (доп. код); в) этап 1: 3410=0010 00102; этап 2: 0010 00102-1101 1101; этап 3: 1101 1101+1 = 1101 1110 (доп. код); г) этап 1: 9610=01100 00002; этап 2: 0110 00002-1001 1111; этап 3: 1001 1111+  1 = 1010 0000 (доп. код). 1.36. В двоичном коде. 1.37. а) 1111 1011(доп. код) =— 510

обратный код

1111 1011  ----------- - 0000 0100

_+_____________________________ 1

0000 0101 = 5;

б)   0000 1111 (доп. код) =+15;

в)   1000 1111 (доп. код) = -113 обратный код 1000 1111   > 0111 0000

+_______________________ 1_

0111 0001 = 113;

г)      0111 0111 (доп. код)=+ 119.

1.6. Арифметика в дополнительном коде

Микропроцессор может использовать числа в форме дополнительного кода, потому что он в состоянии выполнять операции дополнения (инверсии),

Десятичное число   3     6     9     1

Двоично –

десятичное число 0011  0110  1001  0001

Преобразуем теперь двоично-десятичное число 1000 0000 0111 0010 в его десятичный эквивалент. Каждая группа из 4 бит прямо преобразуется в ее десятичный эквивалент, и тогда получаем 1000 0000 0111 0010ддк = =807210:

Двоично –

десятичное число 1000  0000  0111  0010

Десятичное число   8     0     7     2

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

Упражнения

2.24.    Запись ДДК является сокращением ________ .

2.25.    Наиболее общей записью двоично-десятичного кода является ДДК ________ (5421, 8421).

1.26. Записать следующие десятичные числа в ДДК 8421:

а) 39; б) 65; в) 40; г) J7;  д) 82; е) 99.

1.27. Записать следующие двоично-десятичные числа в десятичном коде: а) 10,00 0000; б) 0000 0001; в) 1001 0010; г) 0111 0110; д) 0100 0011 ; е) 0101 0101.

Решения

1.24. Двоично-десятичного кода. 1.25. 8421. 1.26.
 

25

16

2.32.регистр микропроцессора, старший  (7-й)  бит   называется.1.33 Установить, являются ли следующие  числа в дополнительном коде положительными или отрицательными:

а) 0111 0000; б)  1100 1111; в) 1000 1111; г) 0101 0101.

1.34. Используя табл. 1.10, дать дополнительный код следующих десятичных чисел со знаком: а) +1; б) -5; в) +127; г) -1; д) -2; е) -128.

2.35.    Используя процедуру, приведенную в § 1.6, дать дополнительный код следующих десятичных чисел со знаком: а) —10; б) —21; в) —34; г) —96.

2.36.    Расположение бит в дополнительном коде_____ (в ДДК, в двоичном коде) одинаково для положительных двоичных чисел.

1.37. Используя процедуру, приведенную в § 1.6, дать десятичные эквиваленты следующих чисел в дополнительном коде: а) 1111 1011; б) 0000 1111; в) 1000 1111; г) 0111 0111.

Решения

1.32. Знаковым. 1.33. а) 0111 0000 в дополнительном коде положительно, так. как знаковый бит — 0; б) 1100 1111 в дополнительном коде отрицательно, так как знаковый бит—1; в) 1000 1111 в дополнительном коде отрицательно, так как знаковый бит—1; г) 0101 0101 в дополнительном коде положительно, так как знаковый бит—Д 1.34. См. табл. 1.10: а) +1=0000 0001; б) +5=0000 0101; в) +127=0111 1111; г) —1 = 1111 1111;

Следуя процедуре, приведенной в § 1.4, поручаем: а) 3910=0011 1001ддк; б) 6510= 0110 0101ддк; в) 4010=0100  0000ддк; г) 1710=0001  0111ддк; д) 8210=1000  0010ддк; е)|9910=1001  1001ддк;  1.27. Следуя процедуре,   приведенной в §1.4, получаем: а) 10000000ддк=8010; б) 0000 00001ддк=110; в) 1J001 0010ддк=9210; г) 0111 0110ддк =7610;  д) 0100 0011ддк=4310; е) 6l01 0101ддк=5510.

1.4. Двоичная арифметика

Сложение, вычитание или умножение двоичных чисел выполняются так же, как и в арифметике десятичных чисел. Большинство микропроцессоров владеет командами сложения и вычитания двоичных чисел, однако некоторые, менее многочисленные выполняют команды умножения и деления (например, микропроцессоры Intel 8086 и Intel 8088).

На рис. 1.4 а,б представлены простые правила двоичного сложения. Два первых (слева) правила очевидны, третье

Рис. 1.4. Двоичное сложение: а — правила; б —

Пример показывает, что 1 + 1 = 10, т. е. Наиболее
 

24

17

Дополнение до 2 - Прибавить единицу к обратному коду. - (дополнительный код) 1111 0111 Здесь прибавить 1 к 1111 0110, что дает 11110111.

Полученный результат является дополнительным кодом положительного десятичного числа. В приведенном примере дополнительным кодом числа 9 является 1111 0111. Заметим, что знаковый бит — 1, это означает, что рассматриваемое число (1111 0111) отрицательно.

Каким будет десятичный эквивалент числа 1111 0000, записанного в форме дополнительного кода? Процедура преобразований в это случае следующая:

Дополнительный код 1111 0000

Этап 1. Запись дополнительного кода (1111 0000).

Дополнение до 1. 0000 1111

Этап 2. Получается обратный код дополнительного кода заменой нулей единицами единиц - нулями(0000 1111)

Двоичное число  +1 0001 0000 = 16

Этап 3. Добавить 1

Таким образом, формирование обратного кода и добавление 1 являются тел и же процедурами, которые мы проводили при преобразовании двоичного числа в дополнительный код. Однако следует отметить, что, хотя мы получили двоичное число 0001 0000= 1610 , исходная запись дополнительного кода 1111 0000= -1610, т.е. имеем отрицательное число, поскольку старший бит в дополнительном коде является 1.

Упражнения

Когда числа со знаком помещаются в 8-разрядный

значимая 1 переносится в ближайший старший разряд. Четвертое правило, наконец, показывает, что 1 + 1 + 1 = 11. В этом случае первое, второе слагаемые и запоминаемое & результате сложения в младшем разряде число —все 1. Результатом -является сумма—1 с переносом 1.

Сложим двоичные числа 0011 1011 и 0010 1010 (операция показана на рис. 1.4,6). Для большей ясности действия с десятичными эквивалентами обрабатываемых чисел показаны на рисунке справа. Суммой двух чисел 0011 1011 и 0010 1010 будет 0110 01012.

На рис. 1.5, а приведены правила двоичного вычитания. Первые три аналогичны десятичному вычитанию. Последнее требует  заема из более значимого предшествующего разряда (в этом случае вес 2). Уменьшаемым является двоичное число 10, вычитаемым 1, разностью— 1.

  Вычтем двоичное число 0011  1001 из 0101 0101. Этот пример приведен на рис. 1.5,6. Разряды весов 1, 2 и 4 этого двоичного вычитания просты для выполнения и относятся к первым трём правилам на рис. 1.5, а. В колонке веса :8 имеет место вычитание 1 из 0. Тогда 1 занимается из колонки веса 16.

 

23

18

рис. 1.6,б содержит 0100 0001, это соответствует числу +65 10 (64+1, знаковый бит положителен). Если в него записано 0111 1111, содержимым будет +12710 (знаковый бит положителен: 64+32+4+16+8+4-+2+1)'П. что является наибольшим. Если, как это показано на рис. 1.6, в, регистр содержит то же число со знаком, но отрицательное, он будет содержать дополнительный код этого числа. В табл. 1.10 запись в дополнительном коде положительных и отрицательных чисел. Заметим, что все положительные числа имеют 0 в старшем бите, остальные биты составляют двоичное число. Все отрицательные числа имеют 1 в старшем разряде. Рассмотрим строку +0 в табл. 1.10: запись в дополнительном коде +0 будет 0000 0000. В ближайшей нижней строке видим, что запись в дополнительном коде — 1 следующая: 1111 1111. Рассмотрим пошаговое перемещение в обратном направлении от 0000 0000 до 1111 1111.

Какой будет запись в дополнительном коде числа —9? Рассмотрим этапы преобразования. Они следующие:

Десятичное число    9

Этап 1. Запись десятичного числа без знака (9)

Двоичное число 0000 1001

Этап 2. Преобразование десятичного числа в двоичный код (0000 1001)

Дополнение до 1  1111 0110

Этап 3. Получить обратный код

(обратный или инверсный код)- заменой двоичного числа нулей единицами, - а единиц — нулями (1111 0110)

Рис. 1.5. Двоичное вычитание: а — правила; б — пример

Единиц* вычитается из 102, что дает разность 1 согласно четвертому правилу на рис. 1.5,а. После этого заема в колонке веса 16 имеет место вычитание 1 из нового вычитаемого 0. Согласно четвертому правилу 1 должна быть занята из следующей, более значимой позиции (колонка веса 32), но в колонке 32 имеем 0; поэтому колонка 32 должна сделать заем   из колонки веса 64, что и выполнено. Окончательно колонка 16 делает заем из колонки 32, уменьшаемым в коленке 16 становится 102, вычитаемым 1, разностью 1. В колонке 32 имеем 1—1=0, в колонке 64 —0—0=0, в колонке 28 — 0—0=0. Таким образом, рис. 1.5,6 иллюстрирует операцию вычитания 10012 из 0101 01012 (справа эта задача решена в десятичной записи).

Приведем правила десятичного умножения:

Множимые                 0      1    0     1

                         X      X   X    X

Множители                 0     0     1     1

Произведения              0    0     0     1

Два первых правила не требуют никаких пояснений. В двух следующих множителем является 1: когда множителем является 1 при двоичном умножении, множимое становится результатом и представляет собой произведение. Когда множитель 0, произведение всегда 0.

Выполним умножение 1101 на 101. Как и в случае умножения десятичных чисел, множимое сначала умножается на число, стоящее в младшем    разряде   
 

22

19

+6

+3

+2

+1

+0

-1

—2

—3

—4

—5

—6

-7

-8

— 128

0000 0100

0000 0011

0000 0010

0000 0001

0000 0000

1111 1111

1111 1110

1111 1101

1111 1100

1111  1011

1111 1010

1111 1001

1111 1000

1111 1000

1000 0000

Положительные числа

представлены в той же

форме, что и прямые

двоичные числа

Отрицательные числа представлены в форме дополнительного кода

Позиции бит пронумерованы от 7 до 0, а веса двоичных позиций указаны в основании регистра, бит 7 имеет  вес 128, бит 6 — 64 и т. д.

На рис. 1.6, б и в  показаны типовые структуры 8-разрядных регистров для размещения чисел со знаком. В обоих случаях бит 7 является знаковым. Он указывает, является ли число положительным  (+) или отрицательным (—). При 0 в знаковом бите число положительно, при 1 — отрицательно.

Если, как показано на рис. 1.6,б , число положительно, оставшиеся ячейки памяти (6-0) содержат двоичное 7-разрядное число. Например, если регистр на

(в рассматриваемом случае — бит в колонке веса).

Множимое   1101  13

            X     X

Множитель  101    5_

1-е частичное произведение           1101       6510

2-е частичное произведение          0000

3-е частичное произведение         1101

Конечное произведение            10000012

Поскольку бит множителя  в разряде веса 1 является 1, множимое копируется и составляет первое частичное произведение. Вторым битом множителя является 0, тогда второе частичное произведение есть 0000 (заметим,  что  оно, сдвинуто на одну позицию влево). Битом разряда веса 4; множителя является 1, тогда для получения третьего частичного произведения снова следует копирование множимого (заметим, что копирован;: завершается новым сдвигом на одну позицию влево). После этого выполняем сложение трех частичных произведений что дает результат 10000012. Полученный результат 110l2 1012=100000l2 соответствует произведению десятичных чисел 13 10X5 10=:65 10.

Упражнения

1.28.  Выполнить следующее сложения двоичных чисел:

а) 1010+0101 б) 1101+0101 в) 1011011+00001111 г) 00111111+0011111

1.29.  Выполнить следующие вычитания двоичных чисел:

а)1110 - 1000 6)1010 - 0101 в)100110 - 00011010 г)01111000 - 01101111

1.30.  Первое число при умножении называется   ,

 

21

20

Десятич-ные

Представление чисел со

знаком

Примечания

+127

+8

+7

+6

+5

0111 1111

0000 1111

0000 0111

0000 0110

0000 0101

Положительные числа

представлены в той же

форме, что и прямые

двоичные числа

Десятич-ные

Представление чисел со

знаком

Примечания

второе — множителем, а результат составляет_ .

1.31.  Выполнить следующие умножения двоичных чисел:

а) 1001·11 б) 1101·1001 в) 1111·1010 г) 1110·1110.

Решения

1.28. См. рис. 1.4: а) 1111; б) 10010; в) 10010 1010; г) 0101 1110. 1.29. См. рис. 1.5: а) 0110; 6)0101; в) 0100 1100; г) 0011 1001. 1.30.Множимое. Произведение.   1.31. Согласно §1.5: а) 11011; б) 111 0101; в) 100 1011; г) 1100 0100.

1.5. Дополнительный код

Сама ЭВМ обрабатывает информацию обычно в двоичном коде. Однако если нужно использовать числа со знаком, используется специальный дополнительный код, что упрощает аппаратные средства ЭВМ.

На рис. 1.6,а приведено обычное изображение регистра МП или ячейки памяти вне МП. Такой регистр представляют пространством из 8 бит данных. -

Рис. 1.6. Изображение регистра МП или ячейки памяти:

а — расположение двоичных позиций; б — идентификация положительных чисел нулем в знаковом бите; в — идентификация отрицательных чисел единицей в знаковом бите

Таблица 1.10. Десятичные числа со знаком и их представление в дополнительном коде