Вы находитесь на странице: 1из 18

МИНИСТЕРСТВО ОБРАЗОВАНИЯ И НАУКИ РОССИЙСКОЙ

ФЕДЕРАЦИИ
ФЕДЕРАЛЬНОЕ ГОСУДАРСТВЕННОЕ БЮДЖЕТНОЕ
ОБРАЗОВАТЕЛЬНОЕ
УЧРЕЖДЕНИЕ ВЫСШЕГО ПРОФЕССИОНАЛЬНОГО ОБРАЗОВАНИЯ
«КАЗАНСКИЙ НАЦИОНАЛЬНЫЙ ИССЛЕДОВАТЕЛЬСКИЙ
ТЕХНИЧЕСКИЙ УНИВЕРСИТЕТ
им. А.Н. ТУПОЛЕВА-КАИ»

ЛАБОРАТОРНАЯ РАБОТА № 2

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


НАД ЧИСЛАМИ В РАЗЛИЧНЫХ СИСТЕМАХ СЧИСЛЕНИЯ

Казань 2019
Лабораторная работа № 2.
Выполнение арифметических операций
над числами в различных системах счисления

Цель – изучение и привитие практических навыков выполнять


арифметические операций над числами, представленными в различных
системах счисления.

1. Выполнение сложения

(правило № 6)
При сложении двух чисел в системе счисления с основанием q
необходимо записать их столбиком одно над другим так, чтобы
соответствующие разряды одного слагаемого располагался под
соответствующими разрядами другого слагаемого. Сложение производится
поразрядно справа налево, начиная с младших разрядов слагаемых.
Рассмотрим сложение в разряде с номером i. Введем обозначения: а , b -
цифры соответственно первого и второго слагаемых i-го разряда, p -
признак переноса из i-1 разряда. Признак переноса pi равен 1, если в (i - 1) -ом
разряде сформирована единица переноса и p равен 0 в противном случае.
Найдем сумму: S =a + b + p ; a и b - десятичные числа, которые
соответствуют цифрам ai и bi.
Сложение производиться в десятичной системе счисления. Возможны
два случая:
1. S q. В этом случае из S вычтем основание системы
счисления q, сформируем признак переноса в следующий i+1 разряд, равный
1 и разности, полученной в результате вычитания, поставим в соответствии
цифру s системы счисления с основанием q.
2. S < q.. Сформируем признак переноса p в следующий i+1
разряд, равный 0. Поставим в соответствии десятичному числу S цифру s
системы счисления с основанием q.

2
Полученная цифра s является цифрой i-го разряда суммы. Аналогично
производится сложение в каждом разряде.

Пример 1. Сложим два двоичных числа: 1001011001 и 1011000111:

1 1 1 1 1 1 1 1

1 0 0 1 0 1 1 0 0 12 6 0 110
+ +
1 0 1 1 0 0 0 1 1 12 7 1 110
1 0 1 0 0 1 0 0 0 0 02 1 3 1 210

Пример 2. Найдем сумму чисел 11318 и 13078, представленных в


восьмеричной системе счисления:

1 1 3 18 7 1 110
+ +
1 3 0 78 6 0 110
2 4 4 08 1 3 1 210

Пример 3. Найдем сумму чисел 25916 и 2с716, представленных в


шестнадцатеричной системе счисления:

1 1

2 5 916 7 1 110
+ +
2 с 716 6 0 110
5 2 016 1 3 1 210

3
2. Выполнение вычитания
(правило № 7)

Для того чтобы вычесть числа в системе счисления с основанием q,


необходимо записать одно под другим столбиком, чтобы разряды
вычитаемого располагались под соответствующими разрядами
уменьшаемого. Вычитание производиться поразрядно, начиная с младшего
разряда. Рассмотрим вычитание в i-ом разряде. Введем обозначения: a и b
-цифры соответствующего уменьшаемого и вычитаемого i-го разряда, p -
признак единицы заема в i–ом разряде.
Этот признак равен 1, если возникла необходимость в заеме единицы в
(i – 1) – ом разряде и признак pi равен 0 в противном случае. Поставим в
соответствии a и b десятичные .числа a и b . Найдем значение
выражения r =a  b + p . Возможны два случая:
1. r  0. В этом случае признак p =-1, т.е. возникает заем единицы в
следующем разряде. Найдем сумму r + q. Полученной сумме
поставим в соответствие цифру r системы счисления с основанием q.
2. r 0. В этом случае r необходимо поставить в соответствие цифру
ri . Признак заёма p = 0.
Полученная цифра r является цифрой i-го разряда разности.
Аналогично производится вычитание в каждом разряде.

Пример 4. Необходимо вычесть из двоичного числа 1001011001


двоичное число 1011000111.

4
Так как 1001011001 меньше числа 1011000111, то вычитание
произведем из числа 1011000111. Вычтем из него число 1001011001,
а к разности припишем знак «-»:

-1 -1 -1 -1

1 0 1 1 0 0 0 1 1 12 7 1 110
1 0 0 1 0 1 1 0 0 12 6 0 110
1 1 0 1 1 1 02 1 1 010

Итак, 1001011001 – 1011000111 = - 1101110.


Найдем разность чисел 13078 и 11318, представленных в восьмеричной
системе счисления:

-1

1 3 0 78 7 1 110
- -
1 1 3 18 6 0 110
1 5 68 1 1 010

Найдем разность чисел 25916 и 2с716, представленных в


шестнадцатеричной системе счисления:

1 1

2 с 716 7 1 110
- -
2 5 916 6 0 110
6 е16 1 1 010

5
3. Выполнение умножения в двоичной системе счисления
(правило № 8)
Для того, чтобы умножить одно двоичное число на другое необходимо
записать их одно под другим, чтобы разряды второго сомножителя
располагался под соответствующими разрядами первого сомножителя.
Назовем первый сомножитель - множимое, а второй сомножитель -
множитель.
Сформируем столбик чисел и расположим его под записанными
сомножителями. Количество чисел столбика равно количеству единиц
множителя. Каждое число столбика соответствует одной единице множителя
и образуется из множимого. Множимое записывается в строке столбика так,
что его младший разряд располагается под соответствующей единицей
множителя. Образованный столбик чисел складывается. При этом
первоначально складываются первые два числа. К результату сложения
прибавляется третье число, к очередному результату прибавляется четвертое
число, и т. д. Полученная сумма является произведением двух исходных
чисел.
Пример 5. Перемножить двоичные числа 1001011001 и 100100:

14 13 12 11 10 9 8 7 6 5 4 3 2 1 0

1 0 0 1 0 1 1 0 0 1 6 0 1
 
1 0 0 1 0 0 3 6
1 0 0 1 0 1 1 0 0 1 0 0 3 6 0 6
+ +
1 0 0 1 0 1 1 0 0 1 1 8 0 3
1 0 1 0 1 0 0 1 0 0 0 0 1 0 0 2 1 6 3 6

6
Проверим результат выполнения умножения, переведем число
1010100100000100 в двоичную систему счисления:
1010100100001002 = 1214 + 0213 + 1212 + 0211 + 1210 + 029 + 028+

+127 +026+025+ 024+ 023+ 122+ 021+ 020 = 16384 + 0 + 4096 + 0 +

+ 1024 +.0 + 0 + 128 + 0 + 0 + 0 + 0 + 4+ 0 + 0 = 2163610.

Таким образом, произведение чисел 1001011001 и 100100 равно


1010100100001002.

4. Выполнение деления
(правило № 9)
Для того, чтобы разделить одно двоичное число не другое необходимо
записать числа также как записываются числа при делении в десятичной
системе счисления (уголком). Далее выполняются действия:
1. Просматриваем делимое слева направо, начиная со старшего
разряда, и определим минимальную по длине последовательность нулей
и единиц, из которой можно образовать число не меньшее, чем делитель.
2. Запишем под образованным числом делитель таким образом,
чтобы младший разряд делителя располагался под младшим разрядом
образованного числа.
3. Выполним вычитание, т.е. из образованного числа вычтем
делитель и найдем разность.
4. В область частного запишем единицу. Если в области частного
имеется последовательность цифр, то единица приписывается справа к
последовательности цифр, размещенной в области частного.
5. Припишем справа к полученной разности разряд делимого
расположенный за образованным числом. Если такой разряд отсутствует, то
деление закончено и образованное из разности и возможно приписанных
ранее разрядов делимого число является остатком от деления. Если разряд
делимого можно приписать к разности, то возможны два случая:

7
5.1. Образованное число меньше делителя. В этом случае в область
частного необходимо справа приписать ноль и повторить шаг 5.

5.2. Образованное число больше или равно делителя. В этом случае


следует вновь выполнить шаги 2, 3, 4, 5.

Пример 6. Выполним деление двоичного числа 1001011001 на двоичное


число 100100:

1 0 0 1 0 1 1 0 0 1 1 0 0 1 0 0 6 0 110 3 6
1 0 0 1 0 0 1 0 0 0 0 5 7 6 1 6
1 1 0 0 1 2 5

Таким образом, частным отделения будет являться число 10000 2, а


остатком – число 110012.

5. Порядок выполнения лабораторной работы

1. Получить у преподавателя номер варианта заданий (см. таблицу


2).

2. Изучить правила выполнения вычислений выполняемых в


лабораторной работе.
3. Выполнить задания лабораторной работы. Представить
преподавателю результаты работы для проверки.
4. Самостоятельно изучить правила выполнения операций над
дробными числами, представленными в форме с плавающей точкой,
выполнить задание (см. приложение 1).
5. Выполнить тестовые задания. Протокол тестирования оформить
в форме таблицы 1.

8
Таблица 1
№ Наименование Время в сек, Количество Количество Количество
задачи затраченное заданий ошибочных правильных
на решение решений решений
Выполнение
арифметических
операций

6. Оформить отчет по выполнению лабораторной работы. В отчет


включаются результаты выполнения заданий и протокол тестирования.
7. Подготовиться к защите лабораторной работы. Выучить правила
и подготовится для устного пересказа.

6. Задание лабораторной работы

1. Перевести числа в двоичную, восьмеричную и шестнадцатеричную


системы счисления.
2. Выполнить действия в двоичной системе счисления:
2.1. Сложение: a + b.
2.2. Вычитание: a – b.
2.4. Вычитание: b – a.
2.6. Умножение: a  с.
2.7. Деление: a /с. Найти частное и остаток от деления.
3. Выполнить действия в восьмеричной системе счисления:
3.1. Сложение: a + b.
3.2. Вычитание: b – a.
4. Выполнить действия в шестнадцатеричной системе счисления:
4.1. Сложение: a + b.
4.2. Вычитание: b – a.

9
Таблица 2
№ a b c № a b c
1 128 268 12 18 319 513 30
2 151 453 13 19 123 525 31
3 123 234 14 20 319 464 32
4 524 543 15 21 611 712 33
5 144 213 16 22 649 724 34
6 313 412 17 23 599 609 35
7 156 211 18 24 601 711 36
8 618 764 19 25 613 705 37
9 419 543 21 26 681 709 38
10 124 261 22 27 605 713 39
11 161 413 23 28 613 689 40
12 173 234 24 29 617 632 41
13 525 563 25 30 629 678 42
14 164 213 26 31 729 777 53
15 213 412 27 32 873 834 57
16 136 214 28 33 981 987 61
17 128 464 29 34 983 991 63

10
Таблица 2(продолжение)
№ a b c № a b c
035 505 753 031 070 394 669 048
036 514 689 053 071 617 974 031
037 203 839 054 072 253 545 056
038 866 966 044 073 297 989 029
039 643 698 056 074 265 671 027
040 831 978 021 075 649 904 049
041 625 716 029 076 532 761 058
042 421 694 058 077 461 930 042
043 532 675 025 078 303 865 034
044 653 922 048 079 517 658 023
045 666 918 021 080 896 952 027
046 456 598 047 081 454 518 034
047 741 795 043 082 522 838 027
048 748 841 058 083 755 894 046
049 856 959 058 084 197 592 039
050 112 844 048 085 456 531 029
051 318 645 036 086 326 534 041
052 394 756 058 087 508 944 043
053 375 963 036 088 155 655 055
054 787 839 027 089 298 372 054
055 575 793 021 090 888 981 030
056 524 916 034 091 700 946 032
057 687 843 024 092 545 864 038
058 192 341 025 093 156 990 056
059 533 602 028 094 458 955 039
060 271 395 046 095 288 702 037
061 179 610 034 096 628 780 030
062 721 934 052 097 542 851 053
063 497 616 056 098 256 684 024
064 706 967 027 099 584 825 042
065 259 695 042 100 595 762 025
066 252 927 042 101 247 985 037
067 879 979 029 102 735 975 042
068 267 736 036 103 822 897 058
069 356 590 051 104 633 685 023

11
Таблица 2 (окончание)
№ a b c № a b c
105 544 795 025 122 559 970 048
106 643 991 038 123 456 801 045
107 855 963 042 124 513 877 025
108 404 668 033 125 793 891 030
109 861 929 021 126 895 975 055
110 744 874 037 127 247 888 058
111 847 965 029 128 139 996 050
112 569 792 030 129 586 986 055
113 396 499 044 130 577 695 056
114 627 760 058 131 297 501 025
115 516 753 051 132 194 293 031
116 306 415 050 133 183 719 040
117 462 831 048 134 406 797 047
118 742 944 028 135 888 956 036
119 750 910 027 136 597 811 027
120 687 756 039 137 659 868 024
121 366 891 047 138 516 649 026

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


1. Перескажите правило сложение целых чисел.
2. Перескажите правило вычитания целых чисел.
3. Перескажите правило умножения целых двоичных чисел.
4. Перескажите правило деление целых двоичных чисел.
5. Перескажите правило сложение дробных двоичных чисел.
6. Перескажите правило вычитания дробных двоичных чисел.
7. Перескажите правило умножения дробных двоичных чисел.
8. Перескажите правило деление дробных двоичных чисел.
9. Вычислите в двоичной системе счисления 3510+1710.
10. Вычислите в двоичной системе счисления 3510 1710.
11. Вычислите в двоичной системе счисления: 10310+1210 и
10111012+01110012.
12. Вычислите в восьмеричной системе счисления: 10310+1210 и
1038+128.
12
13. Вычислите в восьмеричной системе счисления: 103 8 - 128 и 7038 -
-1710.
14. Вычислите в шестнадцатеричной системе счисления: a316 + 1216;
10310 + 1210 и 1038+128.
15. Вычислите в шестнадцатеричной системе счисления: 10316+1216;
10310+1210; 1038+128.
16. Вычислите в шестнадцатеричной системе счисления: 10a16+1f216;
b0316+12c16; 10316+1216;
17. Вычислите в двоичной системе счисления: 1100112 × 10101012 .
18. Вычислите в двоичной системе счисления: 1728 × 78.
19. Вычислите в двоичной системе счисления: 10316 × 216; 10310 
 10816 .
20. Вычислите в двоичной системе счисления: 103 16 : 1216 ; 1038 : 1216 ;
1038 : 128.

13
Приложение 1. Выполнение операций при использовании формата
хранения с плавающей точкой (домашнее задание)

Дробные числа могут содержать большой набор цифр. Например:


0.0000345 или 10900000 (т.е. очень большие или очень маленькие числа).
Для удобства хранения и выполнения арифметических операций над ними
такие числа приводят к виду так называемого нормализованного
представления числа. Заключается такое представление в том, что число
записывается в виде произведения правильной дроби на основание системы
счисления, возведенное в ту или иную степень. Например, предыдущие два
числа в нормализованном виде будут выглядеть так: 0.345 10-4 и 0.109  108.
Здесь числа 0.345 и 0.109 – мантиссы действительных чисел,
10 – основание системы счисления, а -4 и 8 – порядки. При этом точка,
разделяющая дробную и целую части, ставится перед первой значащей
цифрой (отличной от 0).
Нормализованная форма числа является наиболее удобной для
представления дробных чисел в компьютере.
Понятно, что нормализированное представление используется не
только для десятичной системы счисления. Вот примеры нормализованных
записей дробных чисел в двоичной системе счисления:
Например, число 1000.012 в нормализованном виде с плавающей
точкой будет представлено следующим образом (разделительная точка
сдвигается влево на 4 разряда):
0.10000124.
В таком представлении числа 1000.012 последовательность цифр
100001 является записью мантиссы, а число 410 – порядком числа.
Рассмотрим еще один пример нормализации числа 0.0001101 2. В этом
случае разделительную точку перемещают право на 3 разряда, и после
нормализации число имеет следующую запись:
0.11012-3.

14
Последовательность цифр 1101 является записью мантиссы, а число -3 10
– порядком числа.
Рассмотрим правило выполнения арифметических действий при
использовании формата хранения с плавающей точкой с нормализованными
числами (правило № 10):
1. При сложении и вычитании чисел сначала уравниваются
порядки операндов. Мантисса числа с меньшим порядком сдвигается вправо
на количество разрядов, равное разности порядков операндов. После каждого
сдвига порядок увеличивается на единицу. Затем производится сложение
либо вычитание мантисс слагаемых (см. правило № 6 и № 7).
2. При умножении чисел порядки сомножителей складываются,
а мантиссы перемножаются (см. правило № 8).
3. При делении из порядка делимого вычитается порядок
делителя, а над мантиссами совершается операция деления (см.правило № 9).
4. При необходимости полученный результат выполнения
арифметических действий нормализуется.
Рассмотрим несколько примеров (7 - 10) выполнения действий с
нормализованными дробными двоичными числами. Для удобства
выполнения операций умножения и деления в примерах (9, 10) мантиссы
операндов преобразуют к целым числам.
Пример 7. Выполнить сложение числа 0.101227 и числа 0.110112 210.
Предварительно выравниваются порядки. Порядок первого слагаемого
увеличивается на три, а разделительная точка перемещается на три разряда
вправо (0.101227 = 0.0001012210 ):
1

0 . 0 0 0 1 0 1  2 10

+
0 . 1 1 0 1 1  2 10

0 . 1 1 1 0 1 1  2 10

15
Результат сложения равен 0.1110112210.

Пример 8. Вычесть из 0.101012 210 число 0.111012  29:


Предварительно выравниваются порядки. Порядок вычитаемого
увеличивается на единицу, а разделительная точка перемещается на один
разряд вправо (0.11101229= 0.0111012210):

-1 -1 -1 -1

0 . 1 0 1 0 1  2 10

-
0 . 0 1 1 1 0 1  2 10

0 . 0 0 1 1 0 1  2 10

Результат вычитания равен 0.11012212.


Пример 9. Выполнить умножение двоичных чисел 0.111012 × 25 (2910) и
0.10012× 23 (4.510).
Сложим порядки сомножителей:

(0.111012 × 25) (0.10012× 23) = (0.111012 × 0.10012)  25+3=


= (0.111012 × 0.10012)  28.
Для перемножения мантисс будем использовать алгоритм умножения
целых двоичных чисел (см. правило № 3). Для этого преобразуем мантиссы:
0.111012 = 0.111012 × 25 × 2-5 = 111012 × 2-5;
0.10012 = 0.10012 × 24 ×2-4 = 10012 × 2 -4 .
Полученные целые числа перемножим, а порядки сложим:
(111012 × 2-5 × 10012 × 2-4) = 1000001012 × 2-9.
Таким образом, при перемножении мантисс получено двоичное число:
0.111012  0.10012 = 1000001012 × 2-9 = 0.100000101220.
Завершим умножение двоичных чисел:
(0.111012 × 0.10012)  28 =(0.100000101220)  28 =

= 0.100000101228.

16
Нормализация числа не требуется. Таким образом, в результате
умножения получено двоичное нормализованное число:
(0.111012 × 25) (0.10012× 23) = 0.100000101228 (130.510).
Пример 10. Выполнить деление двоичного числа 0.11112×24 (1510) на
двоичное число 0.1012×23 (510):
Из порядка делимого вычтем порядок делителя:

(0.11112×24) : (0.1012×23) = (0.11112 : 0.1012) ×24 - 3 = (0.11112 : 0.1012) ×21.


Для деления мантисс будем использовать алгоритм деления целых
двоичных чисел (см. правило № 4). Для этого преобразуем мантиссы:
0.11112 = 0.11112 × 24 × 2-4 = 11112 × 2-4;
0.1012 = 0.1012 × 23 × 2-3=1012 × 2-3.
Выполним деление целых чисел, а из порядка мантиссы делимого
вычтем порядок мантиссы делителя:
(11112 × 2-4) : (1012 ×2-3) = 112 ×2-1.
Таким образом, при делении мантисс получено двоичное число:
0.11112 : 0.1012 = 112 ×2-1 .
Завершим деление двоичных чисел:
(0.11112 : 0.1012) ×21 = (112 ×2-1) . × 21 = 112 ×20 = 0.112 ×22.
Таким образом, в результате деления получено двоичное
нормализованное число:
(0.111012 × 25)  (0.10012× 23) = = 0.112 ×22 (310).

Задание для самостоятельной работы

1. Перевести числа a и b из десятичной системы счисления в двоичную


систему счисления (см. таблицу П1).
2. Нормализовать полученные двоичные числа.
3. Выполнить действия: a + b; a - b; a  b; a : b.

17
Таблица П1. Варианты заданий для выполнения домашнего задания
№ a b № a b № a b № a b
001 850 050 035 364 028 069 459 027 103 799 047
002 464 029 036 540 045 070 350 025 104 675 045
003 425 025 037 456 038 071 624 048 105 800 050
004 464 029 038 420 030 072 882 049 106 299 023
005 748 044 039 546 042 073 612 034 107 495 033
006 357 021 040 504 028 074 738 041 108 585 045
007 512 032 041 378 027 075 816 048 109 800 050
008 705 047 042 345 023 076 455 035 110 637 049
009 532 038 043 442 034 077 616 044 111 300 025
010 612 034 044 308 028 078 231 021 112 273 021
011 846 047 045 288 024 079 675 045 113 612 034
012 528 048 046 612 036 080 765 045 114 400 025
013 900 050 047 384 032 081 490 035 115 684 038
014 666 037 048 378 021 082 702 039 116 680 040
015 592 037 049 574 041 083 464 029 117 666 037
016 765 051 050 544 034 084 637 049 118 510 034
017 675 045 051 242 022 085 680 040 119 672 048
018 396 033 052 714 042 086 532 038 120 558 031
019 528 033 053 341 031 087 416 026 121 416 032
020 476 034 054 504 028 088 374 022 122 663 051
021 518 037 055 450 025 089 720 048 123 432 027
022 611 047 056 253 023 090 816 051 124 448 032
023 364 026 057 390 030 091 700 050 125 408 034
024 459 027 058 480 040 092 684 038 126 465 031
025 378 027 059 348 029 093 403 031 127 391 023
026 525 035 060 486 027 094 507 039 128 464 029
027 352 022 061 660 044 095 608 038 129 372 031
028 231 021 062 495 045 096 882 049 130 468 026
029 735 049 063 720 048 097 396 033 131 425 025
030 462 033 064 585 045 098 390 026 132 684 038
031 648 036 065 442 026 099 459 027 133 714 051
032 276 023 066 325 025 100 684 038 134 686 049
033 429 033 067 561 051 101 544 034 135 527 031
034 702 039 068 324 027 102 900 050 136 700 050

18

Вам также может понравиться