Общие положения
Лабораторные работы выполняются для того, чтобы лучше усвоить теоретический материал, излагаемый в лекциях, и научиться пользоваться этими знаниями для решения конкретных практических задач.
Результатом лабораторной работы является выполнение содержащихся в ней заданий, оформление отчета и представление отчета (защита) преподавателю.
Студент должен иметь отдельную тетрадь для лабораторных работ.
Отчет по каждой лабораторной работе должен начинаться с новой страницы и содержать следующее.
Þ Заголовок (Лабораторная работа №...).
Þ Тема работы.
Þ Задание.
Þ Результат выполнения задания.
Если заданий несколько, то последние два пункта повторяется столько раз, сколько заданий содержит работа.
Если необходимо, то ответы на контрольные вопросы записать в тетрадь для лабораторных работ.
Выполнение заданий лабораторной работы требует знания соответствующего теоретического материала, поэтому необходима предварительная подготовка к выполнению работы, заключающаяся в изучении соответствующих тем. Кроме того, на лабораторных занятиях нужно иметь лекции, содержащие требуемый теоретический материал.
Лабораторная работа № 1
Тема: системы счисления.
Цель работы. Получить представление о двоичной системе счисления, используемой в компьютерах и способах преобразования чисел из одной системы счисления в другую.
Теоретические предпосылки. Система счисления (СС) - способ записи (представления) чисел с помощью цифровых знаков. Количество цифр, используемых в СС, является основанием этой СС. В позиционных СС вес (значимость) цифры зависит от ее положения (позиции) в числе.
В общем виде число anan-1 ... a0,a-1a-2 ... a-m в СС с основанием q, является разложением по степеням основания: anan-1 ... a0,a-1a-2 ... a-m = an · qn + an-1 · qn-1 +...+ a0 · q0 + a-1 · q-1 + a-2 · q-2 +... + a-m· q-m, где ai - цифры СС.
Пример: 218 = 2·102 + 1·101 + 8·100 = 200 + 10 + 8, основание СС q = 10.
Для записи числа, большего основания системы счисления q, требуется больше одной цифры (разряда).
Технические особенности компьютеров – только два устойчивых положения элементов, из которых состоит память и другие устройства компьютеров, - являются причиной использования в них именно двоичной СС. В этой СС, используя один разряд (одну цифру) можно записать только числа 0 и 1, а числа, большие 1, требуют большего количества разрядов. Так как в двоичной СС увеличение любого числа на два приводит к появлению в числе дополнительного разряда, то число в двоичной СС записывается с непривычным для нас большим количеством цифр.
Использование вспомогательных восьмеричной и шестнадцатеричной систем счисления для записи адресов, констант, команд обусловлено двумя причинами:
а) перевод чисел из двоичной СС в них и обратно прост;
б) длина записи числа сравнима с длиной числа в привычной нам десятичной СС.
Запишем некоторые десятичные числа и соответствующие эквиваленты в двоичной, восьмеричной и шестнадцатеричной СС.
Для представления шестнадцатеричных чисел используются цифры (знаки): 0 1 2 3 4 5 6 7 8 9 A B C D E F.
Десятичные числа | Двоичные числа | Восьмеричные числа | Шестнадцатеричные числа |
А | |||
В | |||
С | |||
D | |||
Е | |||
F | |||
Перевод чисел из одной СС в другую.
Число в любой позиционной СС можно разложить в степенной ряд, тем самым переведя его в десятичную СС. Пример: 20D7,F16 = 2•163 + 0•162 + 13•161 + 7•160 + 15•16-1 =
8192 + 208 + 7 + 0,94 = 8407,94
Для перевода целого числа из одной позиционной системы счисления в другую, число нужно последовательно делить на основание той системы счисления, в которую переводится число. Деление выполняется до тех пор, пока остаток от деления не будет меньше делителя (основания СС).
Цифрами числа в «новой» СС будут остатки от деления, начиная с последнего.
Пример: переведем число из десятичной в двоичную СС. 3810 СС2
38|_2
38 19|_2
0 18 9|_2
1 8 4 |_2
1 4 2|_2
0 2 1 <– старший разряд, отсюда:
0 3810 = 100110 2
выполним проверку, разлагая число в ряд по степеням основания СС, т.е. по степеням числа 2: 100110 2 = 1•25 + 0•24 + 0•23 + 1•22 + 1•21 + 0•20 = 32 + 4 + 2 = 3810;
Преобразуем число 6710 вшестнадцатеричную систему счисления:
67|_16
64 4 отсюда 6710 = 43 16;
проверка: 43 16= 4•161 + 3•160 = 64+ 3 = 6710.
Для перевода правильной дроби (<1) в другую СС нужно дробь последовательно умножать на основание системы, в которую она переводится. Дробь в новой СС записывается в виде целых частей получаемых произведений, начиная сверху. Пример: 0,12510 СС2
0, | 125
x | __2 0,12510 0, 001 2
0, | 250
x | __ 2
0, | 500
x | __ 2
1, | 000
При переводе дроби обычно возникает проблеме прекращения бесконечного процесса перевода (правая часть всегда не нулевая). Перевод прекращают получив некоторое (требуемое) количество цифр после запятой.
При переводе смешанных чисел целая и дробная части переводятся отдельно.
Для записи чисел восьмеричная и шестнадцатеричная СС требуют, соответственно, в 3 и 4 раза меньше цифр (разрядов), чем двоичная СС. Рассмотрим три двоичных разряда (числа из трех цифр): 0002 – 08, 0012 – 18, 0102 – 28, 0112 – 38, 1002 – 48, 1012 – 58, 1102 – 68, 1112 – 78, т.е. один разряд восьмеричной СС (одну восьмеричную цифру) можно представить с помощью трех разрядов двоичной СС (трех двоичных цифр). Следовательно, перевод из восьмеричной СС в двоичную состоит просто в замене каждой восьмеричной цифры соответствующей триадой двоичных цифр. Пример: 3718 011 111 0012. Перевод из двоичной СС в восьмеричную состоит в замене каждой триады эквивалентной цифрой восьмеричной СС. Пример: 10 011 1012 2358.
Аналогично осуществляется перевод чисел из двоичной СС в шестнадцатеричную и обратно с той лишь разницей, что замена производится не тремя, а четырьмя цифрами двоичной СС, 00002 – 08, 00012 – 116, 00102 – 216, 00112 – 316, 01002 – 416, 01012 – 516, 01102 – 616, 01112 – 716, 10002 – 816, 10012 – 916, 10102 – A16, 10112 – B16, 11002 – C16 , 11012 – D16, 11112 – F16.
Пример: 31F,1A16 0011 0001 1111, 0001 10102.
Арифметика в двоичной СС легко реализуется в ЭВМ: 0+0=0; 0+1=1; 1+1=10 (здесь единица переносится в старший разряд); 0*0=0; 0*1=0; 1*1=1.
Задания.
I. Преобразовать следующие числа из десятичной СС в двоичную, восьмеричную и шестнадцатеричную СС.
Варианты:
1. 6810; 14410; 0,45210; 4,83510; 0,110.
2. 4810; 16510; 0,52310; 2,63510; 0,110.
3. 1710; 14810; 0,39110; 7,35210; 0,110.
4. 3610; 11110; 0,61110; 9,75210; 0,110.
5. 7410; 12910; 0,15510; 3,25410; 0,110.
6. 9310; 11110; 0,61110; 9,75210; 0,110.
7. 3810; 14310; 0,13510; 8,34810; 0,110.
8. 8610; 16410; 0,32510; 7,11210; 0,110.
9. 7310; 12410; 0,81510; 8,17510; 0,110.
10. 5810; 18110; 0,72110; 4,22110; 0,110.
11. 8310; 16310; 0,31510; 6,75810; 0,110.
12. 3910; 15410; 0,25710; 1,73210; 0,110.
13. 7510; 18310; 0,61110; 7,35810; 0,110.
14. 3910; 17410; 0,31510; 5,61710; 0,110.
15. 8110; 13910; 0,61710; 5,21710; 0,110.
16. 5810; 12710; 0,17410; 7,62110; 0,110.
II. Преобразовать одно число в восьмеричную, а другое в десятичную СС.
Варианты:
1. 8С16, СF16. 2. СF16, AD16. 3. В3Е16, А1516. 4. А1Е16, 15Е16. 5. 9А116, Е816. 6. А1Е16, 15Е16. 7. 1ЕС16, FЕ16. 8. 3А116, ЕD16. 9. А316, 4Е116. 10. АВЕ16, Е916. 11. АВ316, 2D16. 12. ВА616 , АЕ16. 13. 9ЕА16, 4В716. 14. 9FА16, ЕА116. 15. DF16, 49116. 16. DF16, 49116.
III. Оценить количество двоичных цифр, необходимых для записи в двоичной СС десятичных чисел из 4-х цифр, из 7 цифр.
IV.Объяснить, почему вещественные (нецелые) числа записываются в компьютере с погрешностью.
V. Оценить эффективность следующих алгоритмов преобразования чисел из 10 - чной СС в 2 - чную: а) сразу ХХХ10 YYYYYYYY2; б) используя 16 - чную СС в качестве промежуточной ХХХ10 ZZ16 YYYYYYYY2.
VI. Выполнить арифметические операции (сложение и умножение) над парами двоичных чисел: 10011 и 111; 110111 и 111001; 11,011 и 101,101.
Контрольные вопросы.
1. Что такое система счисления, ее основание?
2. Чем обусловлено использование в ЭВМ двоичной системы счисления?
3. В чем причина погрешности, появляющейся при переводе дробного числа из десятичной в двоичную систему счисления?