- •1.4 Самостоятельная работа студентов при подготовке к практическому занятию
- •1.5 Теоретический материал по теме практического занятия
- •1.6 Методические указания для работы студентов на практическом занятии
- •1.7 Индивидуальные задания
- •2.6 Методические указания для работы студентов на практическом занятии
- •2.7 Индивидуальные задания
- •3.6 Методические указания для работы студентов на практическом занятии
- •3.7 Индивидуальные задания
- •4.6 Методические указания для работы студентов на практическом занятии
- •4.7 Индивидуальные задания
- •5.6 Методические указания для работы студентов на практическом занятии
- •5.7 Индивидуальные задания
3.6 Методические указания для работы студентов на практическом занятии
Преподаватель проверяет уровень подготовки студентов к практическому занятию.
Под руководством преподавателя студенты разбирают вопросы, вынесенные на самостоятельную подготовку.
Студенты самостоятельно выполняют предложенные преподавателем индивидуальные задания по переводу чисел в указанные системы счисления.
Преподаватель подводит итоги занятия.
3.7 Индивидуальные задания
Раздать индивидуальные задания из банка заданий. (Можно задания привязать к индивидуальным данным студентов, например, к дате рождения – 7 июня, х=706).
Для указанного числа выполнить перевод в заданные системы счисления (обязательно указать с основанием 2k), например, в пятеричную, восьмеричную, шестнадцатеричную с обратной проверкой. При переводе числа в шестнадцатеричную систему счисления обратить внимание на обязательное использование результатов перевода в восьмеричную систему.
4 Практическое занятие №4
4.1 Тема практического занятия
Дополнительный код. Выполнение операций в дополнительных кодах.
4.2 Цель практического занятия
Приобретение практических навыков по представлению чисел и выполнению операций в дополнительных кодах.
4.3 Рекомендуемая литература
Информатика. Базовый курс. 2-е изд. / Под ред. С.В. Симоновича. СПб.: Питер, 2007. – 640 с.
Брукшир Дж. Информатика и вычислительная техника. 7-е изд. – СПб.: Питер, 2004. – 620с.
Симонович С.В. Общая информатика, Новое издание. – СПб.: Питер, 2007. – 428 с.
Акулов О.А., Медведев Н.В. Информатика: базовый курс – М.: Омега-Л, 2007. – 560 с.
Родина Н.В. Информатика: учебное пособие, ч.1. – М.: МГУПИ, 2006. – 103 с.
4.4 Самостоятельная работа студентов при подготовке к практическому занятию
Ознакомиться с целями практического занятия.
Изучить теоретические основы, обращая особое внимание на следующие вопросы:
Дополнение числа в позиционной системе счисления и его свойства.
Дополнительный код числа в позиционной системе счисления.
Особенности выполнения операций сложения/вычитания в дополнительных кодах.
4.5 Теоретический материал по теме практического занятия
Дополнение числа и его свойства.
Дополнением (D) k–разрядного целого числа Z(р) в системе счисления с основанием р называется величина D(Zp, k) = рk – Z.
Данную формулу можно представить в ином виде:
D(Zp, k) = ( (рk 1) – Z) + 1. Число (рk 1) состоит из k наибольших в данной системе счисления цифр (р1), например, 999(10) , FFF(16) или 11111(2).
Поэтому дополнение числа Z может быть получено путем дополнения до (р 1) каждой цифры числа Z и последующим прибавлением к последнему разряду 1.
Например, дополнение числа 278(10) D(278(10), 3) = 7 2 1 + 1 = 722.
(дополнение 2 до 9 – 7, 7 до 9 – 2, 8 до 9 – 1).
Важным свойством дополнения является то, что его сумма с исходным числом в заданной разрядной сетке будет равна 0.
В рассматриваемом примере
278 + 722 = 1 000 (выделенную 1 отбрасываем, она не входит в отведенную разрядную сетку k=3).
Так как в двоичной системе счисления дополнением 1 является 0, а дополнением 0 является 1, то построение D(Z2, k) сводится к инверсии данного числа (т.е. замене нулей единицами, и единиц нулями), и прибавлению 1 к последнему разряду.
Кодирование целых чисел, имеющих знак, можно осуществить двумя способами. В первом варианте один (старший) разряд в машинном слове отводится для записи знака числа; при этом условились кодировать знак «+» нулем, «» единицей.
Под запись самого числа остается (k-1) двоичных разрядов, что обеспечивает наибольшее значение числа Zmax = 2k-1. Например, для k=16, Zmax = 215 – 1 = 3276710.
Такое представление чисел называется прямым кодом.
Например, 36(10) = 10010100 (знаковый разряд выделен),
+ 36(10) = 00010100 .
Однако применение прямого кода усложняет порядок обработки чисел – например, операция сложения двух чисел с разными знаками должна быть заменена операцией вычитания меньшего из большего с последующим присвоением результата знака большего по модулю числа. Таким образом, операция сопровождается большим количеством проверок условий и выработкой признаков, в соответствии с которыми выбирается то или иное действие.
Альтернативным вариантом является представление чисел со знаком в дополнительном коде (ДК). Его применение позволяет заменить вычитание чисел их суммированием в дополнительных кодах.
Дополнительный код (ДК) целых чисел строится по следующим правилам:
п ервый разряд кодирует знак: знаку «+» соответствует 0, знаку «–» самой большой цифре в данной системе счисления;
для Zp 0 ДК совпадает с самим числом ДК = Zp;
для Zp < 0 ДК совпадает с дополнением модуля числа, то есть, ДК = D(|Zp|).
Пример 1. Построить дополнительные коды заданных чисел. (Код знака отделен от кода числа).
1235(10) ДК = 0 1235 8632(16) ДК = 0 8632
1235(10) ДК = 9 8765 8632(16) ДК = F 79CЕ
5790(10) ДК = 9 4210 10211(3) ДК = 0 10211
3204(5) ДК = 4 1241 10211(3) ДК = 2 12012
Пример 2. Построить дополнительный код чисел в двоичной системе.
10110111(2) ДК = 1 01001001.
11001101(2) ДК = 1 00110011.
Пример 2 позволяет сформулировать правило «механического» перевода в ДК отрицательных двоичных чисел: находим крайнюю правую 1, ее оставляем, а все цифры перед ней – инвертируем.
Так, для числа 1110001101(2) ДК = 1 0001110011.
При использовании дополнительных кодов операция вычитания двух чисел как самостоятельная отсутствует – она заменяется сложением первого числа с дополнительным кодом второго, то есть просто сложением двух ячеек памяти. Знаковый разряд участвует в операциях по правилам сложения в соответствующей системе счисления. Покажем это на примерах.
Пример 3. Найти сумму (X + Y), если:
а) X = 126(10) 0 126
Y = 26(10) 9 974
0 100
знак результата «+» (код 0), результат +100(10) .
б) X = 512(10) 9 488
Y = 390(10) 9 610
9 098
Знак результата «» (код 9), результат в дополнительном коде. Перевод отрицательного числа из дополнительного кода в прямой дает результат 902(10).
в) X = 850(10) 9 150
Y = + 429(10) 0 429
9 579
знак «», результат в ДК, обратный перевод в прямой код 421(10).
г) X = 2101(3) 2 0122
Y = + 1011(3) 2 1011
2 1210
результат «», результат 1020(3).
д) X = + 500(10) 0 500
Y = + 739(10) 0 739
1 239
ж) X = 500(10) 9 500
Y = 739 (10) 9 261
8 761
!!! Признак переполнения – значение знакового разряда не равно 0 или максимальной цифре в системе счисления.
Для двоичной системы счисления признак переполнения определяется как отрицательный знак результата при сложении двух положительных чисел и наоборот – положительный знак результата при сложении двух отрицательных чисел.
Пример 4. Представить числа в ДК с учетом разрядной сетки 1 байт и выполнить операцию сложения.
X = 3(10) 11111101
Y = + 3(10) 00000011
00000000 +0