birmaga.ru
добавить свой файл

1


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

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

Колледж телекоммуникаций и информатики
Расчетно-графическое задание

(Вычислительная техника)

Взаимный перевод чисел

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

Представление информации в ЭВМ

Выполнил студент

Группа


Проверил Иванов В. С.

Новосибирск 2013

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

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

3. Показать размещение этих чисел в памяти компьютера:


  • Адрес первого числа записать как : в виде второго числа.

  • Адрес второго числа получатся увеличением адреса первого на четыре.

  • Вычислить физический адрес памяти размещения первого и второго чисел.

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

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

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

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


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

8. Двоичные числа а1 и а2 представить как числа с плавающей точкой, записанные в базовом формате одиночной длины.

9. Вычислить сумму чисел А1= A /10 и B1 =B /100, представив их как числа с плавающей точкой. Дать необходимые пояснения по правилам и последовательности вычислений.

10. Показать размещение в памяти ЭВМ чисел в двоичном формате, в десятичном формате и формате с плавающей точкой. Число а3 использовать как начальный адрес в оперативной памяти.

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

ПРЕОБРАЗОВАНИЕ СИМВОЛЬНЫХ ДАННЫХ

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

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

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

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

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

E 1 8 F

E 2 F 5

2 0 E 8

5 3 E 2

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

a1: E 1 8 F


a2: E 2 F 5

a3: 2 0 E 8

a4 :5 3 E 2

3. Запишем адрес первого числа как : в виде второго числа:

1E8F: E2F5.

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

1E8F: E2F7.

Вычислим физический адрес памяти размещения первого и второго числа, используя формулу <физ. адрес> = *p + , где p=10H.

Физический адрес:


­-первого числа равен 1E8F0 + E2F5 = 2CB65.

­-второго числа равен 1E8F0 + E2F7 = 2CB67.

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


ADR

DATA

2CB65

E8

2CB66

20

2CB67

E2

2CB68

53

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

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

a1 = E18FН = 15*160 + 8*161 + 1*162 + 14*163 = 57344

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

a2 = E2F5Н = 5*160 + 15*161 + 2*162 + 14*163 =17141

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

a3 = 20E8Н= 8*160 + 14*161 + 0*162 + 2*163 = 744

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

a4 :53E2 = 2*160 + 3*161 + 14*162 + 5*163 =21474

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


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

F = 1111; 8 = 1000;1 = 0001; E = 1110

Получаем E18FН = 111 0000 11000 1111В

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

5= 0101; F = 1111; 26 = 0010; E = 1110

Получаем E2F516 = 1110 0010 1111 0101В

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

20E8Н =0010 0000 1110 1000В

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

52E2H = 0101 0010 1110 0010B

АРИФМЕТИЧЕСКИЕ ОПЕРАЦИИ С ДВОИЧНЫМИ ЧИСЛАМИ СО ЗНАКОМ

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

Преобразуя числа получим:

число A = 0 110 0001 1000 1111

число B = 0 110 0010 1111 0101

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

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

Сложение двоичных чисел А+В

0 110 0001 1000 1111

+

0 110 0010 1111 0101

1 100 0100 1000 0100

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

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

а1 =0 0110 0001 1000 1111

+

а2 =0 0110 0010 1111 0101

0 1100 0100 1000 0100

Проверка:

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


а1 = 2497510

а2 = 2533310

Выполним действие а1+а2 = 24975 + 25333 = 50308.

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

5039810 =0 0000 1100 0100 1000 0100

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

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

А = 0 0110 0001 1000 1111

В = 0 0110 0010 1111 0101

Адоп = 1 1001 1110 0111 0001

Вдоп = 1 1001 1101 0000 1011

Вычитание А–В= А+ Вдоп

0 0110 0001 1000 1111

+

1 1001 1101 0000 1011

1 1111 1110 1001 1010

Проверка:

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

Выполним действие А–В = 24975 – 25333 = -- 358.

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

-35810 =1 0000 0001 0110 0110

Аобр = 1111 1110 1001 1001

+ 1

Адоп = 1 1111 1110 1001 1010

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

Вычитание В–А = В+Адоп

0 0110 0010 1111 0101

+

1 1001 1110 0111 0001

0 0000 0001 0110 0110

Проверка:

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

Выполним действие -А+В = -24975 + 25333 = + 358

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

+ 358 = 0 101100110


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

Вычитание –А–В = Адоп+Вдоп

1 1001 1110 0111 0001

+

1 1001 1101 0000 1011

(1)1 0011 1011 0111 1100

Проверка:

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

Выполним действие –В–А= -24975 - 25333 = – 50308.

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

–50308= 1 1100 0100 1000 0100

Aобр 0011 1011 0111 1011

1

Адоп 1 0011 1011 0111 1100

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

ДЕСЯТИЧНЫЙ ФОРМАТ

Представить значения положительных и отрицательных десятичных чисел А = 24975, В = 25333,─А= 75025 , ─ В = 74667 в упакованном и неупакованном BCD.

Десятичный n-разрядный дополнительный код произвольного целого числа d определяется как 10n d.

Упакованный BCD формат

Число +А в упакованном формате выглядит следующим образом:

1100 0010 0100 100 011101010

Число +В в упакованном формате выглядит следующим образом:

1100 0010 0101 0011 0011 0011

где старшая тетрада старшего байта- 11002 = С16– знак плюс, остальные тетрады – цифры числа.

Число ─А в упакованном формате выглядит следующим образом:

1101 0111 0101 0000 0010 0101

Число ─В в упакованном формате выглядит следующим образом:

1101 0111 0100 0110 0110 0111

где старшая тетрада старшего байта 11012 = D16знак минус, остальные тетрады – цифры числа.


Неупакованный BCD формат

Число +А в неупакованном BCD формате выглядит следующим образом:

2B 32 34 39 37 35

Число +В в неупакованном формате выглядит следующим образом:

2B 32 35 33 33 33

где байт 2В – знак плюс, остальные байты – цифры.

Число =─ А в неупакованном BCD формате выглядит следующим образом:

2D 37 35 30 32 35

Число ─ В в неупакованном BCD формате выглядит следующим образом:

2D 37 34 36 36 37

где байт 2D – знак минус, остальные байты – цифры.

ЧИСЛА В ФОРМАТЕ С ПЛАВАЮЩЕЙ ТОЧКОЙ

Представление положительных чисел

2. Двоичные числа А1 и В1 представить как числа с плавающей точкой.

Представим число А1 = 2497,510 в форме числа с плавающей точкой:


  • Перевеем модуль числа в двоичную систему счисления;

249710 =1001 1100 0001

0,510 =0,1

2497,510 =1001 1100 0001,1

100111000001,12=0,10011 1000 0011 *212

  • Для записи порядка используем q=7 разрядов, тогда смещенный порядок:

Mq = 12+2q-1=12+64=140=1100+100000=1001100

  • Учитывая знак заданного числа запишем его представление в памяти ЭВМ:

А1 =0.100 1100. 1 0011 1000 0011

Представим число В1 =253.33 и (-В1) в форме числа с плавающей точкой:

  • Перевеем модуль числа в двоичную систему счисления;

В1 = 25310 =1111 1101

0,3310 =0, 0100 1101

253,3310 =1111 1101.0100 1101

253,3310 =11111101.010011012 =0,1111 1101 0100 1101*28


  • Для записи порядка используем 7 разрядов, тогда смещенный порядок:

Mq =8+64=72=1000+1000000=100 1000

  • Учитывая знак заданного числа запишем его представление в памяти ЭВМ:

В1=0.100 1000. 1111 1101 0100 1101

Представление отрицательных чисел

Для того чтобы получить запись отрицательного числа - А1 необходимо его мантиссу записать в дополнительном коде и в полученном выражении заменить в разряде знака числа 0 на 1.

МА2 =1111 1101 0100 1101

А2)= 0000 0010 1011 0010

0000 0000 0000 0001

А2)ДОП = 0000 0010 1011 0011

- В1 =1.100 1000. 10 1011 0011

Для того чтобы получить запись отрицательного числа - А1 необходимо его мантиссу записать в дополнительном коде и в полученном выражении заменить в разряде знака числа 0 на 1.

МА1 =1 0011 1000 0011

А1)=01100 0111 1100

0 0000 0000 0001

А1)ДОП = 0 1100 0111 1101

1 =1.100 1100. 0 1100 0111 1101

Сложение чисел в формате с плавающей точкой.

Для этого нужно выравнить порядки чисел, т.е. принять порядок меньшего числа В1 равным порядку большего числа А1,уменьшив мантиссу В1 путем сдвига вправо на число разрядов, равное разности порядков чисел (Ра1 – Ра2 =12-8=4):

В1 =0.100 1100. 0000 1111 1101 0100 1101

Выполним сложение мантисс чисел МА1и МА2

МА1 =0. 1 0011 1000 0011

МА1 =0. 0000 1111 1101 0100 1101


МА1 + МА2 = 0. 1010 1011 1110 1100 1101

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

А1 + В1 = 0. 1000 1100. 1010 1011 1110 1100 1101

Проверка:

Смещенный порядок 1001100=76

Или с учетом смещения76-64=12

Теперь мантиссу 0. 1010 1011 1110 1100 1101 сдвигаем вправо на 12 разрядов и получаем 1010 1011 1110. 1100 1101 (сдвинули десятичную точку на 12 позиций)

Значит целая часть результата:

2048+512+128+32+16+8+4+2=2750

Дробная часть результата:

1/2+1/4+1/8+1/64=0,8306

Эти же числа сложим в десятичной системе счисления:

А1 + В1= 2497,510 +253,3310 =2750,8310

Результат сложения десятичного значения чисел А1и В1 совпал с полученным при сложении этих же чисел в формате с плавающей точкой.

ПРЕДСТАВЛЕНИЕ ИНФОРМАЦИИ В ЭВМ

Записать число А= 24975,─А в двоичном, десятичном,

А1 = 2497,5 и ─А1 формате с плавающей точкой

Двоичный формат

24975 =0  000 0110 0001 1000 1111

─24975 = 1 111 1001 1110 0111 0001

десятичный упакованный

24975 = 1100 0010 0100 1001 0111 0101

─24975 = 1101 0111 0101 0000 0010 0101

десятичный НЕ упакованный

24975 = 0010 1011 0011 0010 0011 0100 0011 1001 0011 0111 0011 0101

─24975 = 0010 1101 0011 0111 0011 0101 0011 0000 0011 0010 0011 0101

формат с плавающей точкой

2497,5 = 0.100 1100. 1 0011 1000 0011

─2497,5 = 1.100 1100. 1100 0111 1101

При записи чисел в память следует помнить, что система хранит в памяти байты слова в обратной последовательности: младшая часть по меньшему адресу, а старшая - по большему адресу.


Adr

Data

20E8

1000

1111

20E9

0110

0001

20EА

0000

0000

20EА

0111

0001

20EB

1001

1110

20EC

0000

1111

20ED

0111

0101

20EE

0100

1001

20EF

1100

0010

20F0

0010

0101

20F1

0101

0000

20F2

1101

0111

20F3

0011

0101

20F4

0011


0111

20F5

0011

1001

20F6

0011

0100

20F7

0011

0010

20F8

0010

1011

20F9

0010

0101

20FA

0011

0010

20FB

0011

0000

20FC

0011

0101

20FD

0011

0111

20FE

0010

1011

Adr

Data

20FF

1000

0011

2100

0001

0011

2101

0010

1100

2102


0111

1101

2103

1100

1100

2104

0000

1100