Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Взаимный перевод чисел.doc
Скачиваний:
2
Добавлен:
28.07.2019
Размер:
87.04 Кб
Скачать

Государственное образовательное учреждение высшего профессионального образования

Сибирский государственный университет телекоммуникаций и информатики

Колледж телекоммуникаций и информатики

СОГЛАСОВАНО

Председатель цикловой комиссии

«________________________»

______________

«___»___________года

УТВЕРЖДАЮ

Заместитель директора

по учебной работе

__________Е.Н.Хаова

«___»___________года

Расчетно-графическое задание Взаимный перевод чисел. Двоичная арифметика.

По дисциплине Вычислительная техника

Специальности 090108 «Информационная безопасность»

230103 «Автоматизированные системы

обработки информации и управления в связи»

__________________________

Базовый уровень СПО

Группа И-801

Студент Сидоров П.П.

Преподаватель Иванов В.С.

Новосибирск

2011

ЗАДАНИЕ

1. Записать без пробелов свои ФамилиюИмяОтчество.

2. Взять любые 16 символов из этой последовательности. Вместо каждого символа записать его младшую цифру ASCII-кода. Разбить на две части по 8 цифр в каждой. Полученные H-коды рассматривать как два четырехбайтных числа в шестнадцатеричной системе счисления.

3. Определить числовые значения исходных шестнадцатеричных чисел (перевести исходные числа в десятичную систему счисления). Пояснить процедуру перевода.

4. Записать двоичное представление исходных (шестнадцатеричных) чисел (перевести их в двоичную систему счисления). Пояснить процедуру перехода.

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

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

7. Записать значения положительных и отрицательных десятичных чисел (п. 4) в упакованном BCD и неупакованном BCD форматах. Показать размещение в памяти ЭВМ с адреса 0C.

Пример выполнения

1. Запишем свою Фамилию Имя Отчество без пробелов: ОсиповПетрОлегович.

2. Возьмём первые 16 символов из этой последовательности и получим следующую последовательность символов: ОсиповПетрОлегов. Вместо каждого символа запишем его младшую цифру ASCII-кода:

О с и п о в П е т р О л е г о в

E 1 8 F E 2 F 5 2 0 E 8 5 3 E 2

Разобьем получившуюся последовательность на две части по 8 цифр в каждой:

E 1 8 F E 2 F 5

2 0 E 8 5 3 E 2

Будем рассматривать получившиеся H-коды как два четырех байтных числа в шестнадцатеричной системе счисления.

1-е число: E 1 8 F E 2 F 5

2-е число: 2 0 E 8 5 3 E 2

3. Переведем данные числа в десятичную систему счисления по формуле , где p – основание исходной системы счисления, в нашем случае мы переводим из шестнадцатеричной системы счисления т.е. р=16, ai – цифра исходного числа.

Переведём первое число:

E18FE2F516 = 5*160 + 15*161 + 2*162 + 14*163 + 15*164 + 8*165 + 1*166 + 14*167 = 378430334910

Переведём второе число:

20E853E216 = 2*160 + 14*161 + 3*162 + 5*163 + 8*164 + 14*165 + 0*166 + + 2*167 = 55209673810

4. Переведем полученные шестнадцатеричные числа в двоичную систему счисления, сопоставив каждой цифре H-кода 4 цифры двоичного кода.

Переведём первое число:

516 = 01012; F16 = 11112; 216 = 00102; E16 = 11102; F16 = 11112; 816 = 10002;

116 = 00002; E16 = 11102

Получаем E18FE2F516 = 111000011000111111100010111101012

Переведём второе число:

216 = 00102; E16 = 11102; 316 = 01012; 516 = 10012; 816 = 10002; E16 = 11102;

016 = 00002; 216 = 00102

Получаем 20E853E216 = 001000001110100001010011111000102

5. Для последующих арифметических операций образуем из исходных чисел двоичные числа с нулевым старшим битом. Заменим в исходном первом числе старший бит на нуль, а второе число оставим без изменений. Переведя числа получим:

Первое число а1 = 011000011000111111100010111101012

Второе число а2 = 001000001110100001010011111000102

6. Выполним действия сложения (вычитания) двоичных (шестнадцатеричных) чисел в дополнительном коде при всех возможных сочетаниях знаков слагаемых, для этого представим числа +а1,+а2,–а1,–а2 в дополнительный коде, используя правило:

А, если число положительное

Aдоп =

Аобр+1, если число отрицательное

После перевода получим представление чисел в дополнительном коде:

+а1 = 0 11000011000111111100010111101012

+а2 = 0 01000001110100001010011111000102

–a1 = 1 00111100111000000011101000010112

–a2 = 1 10111110001011110101100000111102

Выполним действие а1+а2:

0 1100001100011111110001011110101

+

0 0100000111010000101001111100010

_______________________________________

1 0000010011110000011011011010111

Проверим правильность полученного результата, выполнив действия сложения чисел а1 и а2 в десятичной системе счисления:

а1 = 163681970110

а2 = 55209673810

Выполним действие а1+а2 = 1636819701 + 552096738 = 2188916439.

Результат переведём в двоичную систему счисления и запишем его в дополнительном коде:

218891643910 =0 100000100111100000110110110101112

Данный результат не совпал c дополнительным кодом суммы чисел +а1 и +а2 равным 1 00000100111100000110110110101112.

Мы получили неверный результат при сложении в дополнительном коде. Это произошло из-за переполнения, возникшего при выполнении действия а1+а2 в дополнительном коде. Чтобы избежать переполнения, нужно каждое из положительных чисел +а1 и +а2 дополнить нулeм слева, т.е.

+а1 = 0 011000011000111111100010111101012

+а2 = 0 001000001110100001010011111000102

0 01100001100011111110001011110101

+

0 00100000111010000101001111100010

____________________________________________

0 10000010011110000011011011010111

Данный результат сложения чисел +а1 и +а2 в дополнительном коде совпал с результатом сложения этих же чисел в десятичной системе счисления, произведённым выше.

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

+а1 = 0 011000011000111111100010111101012

+а2 = 0 001000001110100001010011111000102

–a1 = 1 100111100111000000011101000010112

–a2 = 1 110111110001011110101100000111102

Выполним действие а1–а2= а1+(–а2):

0 01100001100011111110001011110101

+

1 11011111000101111010110000011110

_______________________________________

( 1) 0 01000000101001111000111100010011

Проверим правильность полученного результата, выполнив действия сложения чисел а1 и – а2 в десятичной системе счисления. Выполним действие а1–а2 = 1636819701 – 552096738 = 1084722963.

Результат переведём в двоичную систему счисления и запишем его в дополнительном коде:

108472296310 =0 010000001010011110001111000100112

Данный результат совпал с дополнительным кодом разности чисел +а1–а2, полученным раннее.

Знак переноса (1) игнорируем, результат вычитания положительный.

Выполним действие а2–а1 = а2+(–а1):

0 00100000111010000101001111100010

+

1 10011110011100000001110100001011

_______________________________________

1 10111111010110000111000011101101

Преобразуем полученный отрицательный результат в дополнительный код:

1 01000000101001111000111100010011

Проверим правильность полученного результата, выполнив действия сложения чисел а2 и – а1 в десятичной системе счисления Выполним действие а2–а1=552 096 738 – 1 636 819 701= – 1 084 722 963.

Результат переведём в двоичную систему счисления и запишем его в дополнительном коде:

–1 084 722 96310 =1 101111110101100001110000111011012

Данный результат совпал с дополнительным кодом разности чисел +а2–а1, полученным раннее.

Выполним действие –а1–а2 = –а1+(–а2):

1 10011110011100000001110100001011

+

1 11011111000101111010110000011110

_______________________________________

(1) 1 01111101100001111100100100101001

Преобразуем полученный отрицательный результат в дополнительный код:

1 10000010011110000011011011010111

Проверим правильность полученного результата, выполнив действия сложения чисел – а2 и – а1 в десятичной системе счисления Выполним действие –а2–а1=

= – 1636819701 + (– 552096738) = – 2188916439.

Результат переведём в двоичную систему счисления и запишем его в дополнительном коде:

–218891643910 = 1 100000100111100000110110110101112

Данный результат сложения чисел –а1 и –а2 в дополнительном коде совпал с результатом сложения этих же чисел в десятеричной системе счисления, произведённым выше.

7. Запишем десятичные числа а1 и 2 упакованном и неупакованном форматах.

а1 = 163681970110

а2 = 55209673810

Запишем их в упакованном и неупакованном форматах.