- •Оглавление
- •Введение
- •Лабораторная работа №1
- •Теоретическая часть:
- •1. Двоичная система счисления.
- •2. Восьмеричная система счисления.
- •3. Шестнадцатеричная система счисления.
- •Этапы выполнения работы:
- •Лабораторная работа №2
- •Теоретическая часть:
- •2. Восьмеричная система счисления.
- •3. Шестнадцатеричная система счисления.
- •Задание на переводы чисел в 8 с/с и 16 с/с .
- •Лабораторная работа №3
- •Теоретическая часть:
- •Задание на форматы целых чисел.
- •Лабораторная работа №4
- •Теоретическая часть
- •Типы чисел с плавающей точкой (по ieee 754)
- •Задание на форматы вещественных чисел
- •Лабораторная работа №5
Задание на переводы чисел в 8 с/с и 16 с/с .
Заданы 2 десятичных числа, которые надо перевести в 8 с/с и 16 с/с соответственно.
С первым десятичным числом выполняем следующие преобразования:
10 с/с -> 8 с/с -> 2 с/с -> 16 с/с -> 10 с/с.
Абсолютная погрешность не должна превышать заданную для перевода точность.
Со вторым десятичным числом выполняем следующие преобразования:
10 с/с -> 16 с/с -> 2 с/с -> 8 с/с -> 10 с/с.
Абсолютная погрешность не должна превышать заданную для перевода точность.
Перевод из 8 с/с в 16 с/с и из 16 с/с в 8 с/с выполняется через 2 с/с по таблицам представления восьмеричных и шестнадцатеричных цифр в 2 с/с.
Переводы
8 с/с -> 2 c/c -> 16 c/c и 16 с/с -> 2 c/c -> 8 c/c
выполняются без погрешности, т.к. системы счисления 8 с/с и 16 с/с имеют основание равное степени 2. Погрешность появляется при переводе из 10с/с в 8 с/с и из 10 с/с в 16 с/с. Это объясняет, почему в информатике наряду с 2 с/с используются 8 с/с 16 с/с.
№ по журналу |
8 с/с |
t |
16 с/с |
t |
1 |
252.89 |
0.04 |
590.03 |
0.05 |
2 |
572.46 |
0.05 |
511.09 |
0.01 |
3 |
573.32 |
0.01 |
906.45 |
0.02 |
4 |
595.68 |
0.02 |
996.35 |
0.03 |
5 |
425.47 |
0.03 |
575.24 |
0.04 |
6 |
677.43 |
0.04 |
740.35 |
0.05 |
7 |
362.84 |
0.05 |
750.76 |
0.01 |
8 |
466.57 |
0.01 |
507.67 |
0.02 |
9 |
492.45 |
0.02 |
599.47 |
0.03 |
10 |
235.67 |
0.03 |
589.36 |
0.04 |
11 |
467.92 |
0.04 |
799.44 |
0.05 |
12 |
563.58 |
0.05 |
895.66 |
0.01 |
13 |
325.64 |
0.02 |
794.87 |
0.02 |
14 |
556.36 |
0.03 |
620.45 |
0.03 |
15 |
424.53 |
0.04 |
910.37 |
0.04 |
16 |
315.43 |
0.05 |
718.56 |
0.05 |
17 |
561.62 |
0.01 |
509.13 |
0.01 |
18 |
456.12 |
0.02 |
540.94 |
0.02 |
19 |
444.03 |
0.03 |
730.55 |
0.03 |
20 |
626.34 |
0.04 |
506.28 |
0.04 |
21 |
341.66 |
0.05 |
923.37 |
0.05 |
22 |
345.45 |
0.01 |
844.69 |
0.01 |
23 |
349.85 |
0.02 |
810.22 |
0.02 |
24 |
156.54 |
0.03 |
766.35 |
0.03 |
25 |
459.37 |
0.01 |
753.17 |
0.04 |
Для 25 варианта число 459.37 надо переводить в 8 с/с с точностью t=0.01,
число 753.17 надо переводить в 16 с/с с точностью t=0.04.
Лабораторная работа №3
Тема: Форматы целых чисел.
Цель: Изучить форматы представления целых чисел и алгоритмы перевода, знать диапазоны, понимать отличие представлений целых чисел со знаком и без, дополнительный код.
Теоретическая часть:
1. Целые числа (числа с фиксированной запятой).
ПК имеет несколько типов целых чисел, различающихся между собой количеством содержащихся в них разрядов. Здесь будет рассмотрен тип short int для 32-х разрядных процессоров.
Для чисел типа short int отводится поле длиной 2 байта. Биты этого поля нумеруются в последовательности 15, 14, ..., 1, 0. Пятнадцатый бит, т.е. бит с пятнадцатым порядковым номером содержит знак числа ("0" - это знак "+", "1" - знак "-").
Например, число 3104 = C20 в формате short int имеет вид
0C2016 = 0000 1100 0010 00002
Здесь 16 c/c используется для компактного изображения двоичного числа.
Примечание. Поскольку число в формате short int имеет размер 2 байта, то шестнадцатеричная запись числа, применяемая для его компактного представления, должна всегда содержать 4 цифры. С этой целью в приведенном выше примере к шестнадцатеричной записи числа добавлен незначащий нуль.
Отрицательные числа с фиксированной запятой представлены в так называемом дополнительном коде.
Дополнительный код отрицательного числа - это его дополнение до такого числа, которое в этой же системе счисления представлено единицей и столькими нулями, сколько цифр имеет исходное число.
Пример 8.
10 c/c 16 c/c 2 c/c
1 0 0 0 0 1 0 0 0 0 1 0 0 0 0
- 2 8 9 3 - A 5 4 C - 1 0 1 0
8 1 0 7 5 A B 4 0 1 1 0
Существует более простое правило формирования дополнительного кода отрицательного числа: чтобы получить такой код, необходимо каждую цифру исходного отрицательного числа заменить ее дополнением до максимальной цифры в данной системе счисления, а затем добавить единицу к младшему разряду образовавшегося числа.
Для 10 c/c максимальная цифра - это 9, для 16 c/c - F, для 2 c/c - 1. Отметим, что для 2 c/c первый этап указанного преобразования сводится к инвертированию числа, т.е. замене нулей на единицы, а единиц - на нули.
Для числа -3104 в формате short int имеем F3E0. Для числа -58 = -003A получим FFC6.
Дополнительный код позволяет заменить операцию вычитания операцией сложения с дополнительным кодом отрицательного числа.
Пример 9.Пусть нам требуется выполнить в 10 c/c операцию
6 5 8 6 1
- 4 8 2 7 3
1 7 5 8 8
Вместо вычитания числа 48273 выполним сложение с его дополнительным кодом (51727):
6 5 8 6 1
+ 5 1 7 2 7
11 7 5 8 8
Обведенная единица переноса выходит за пределы разрядной сетки и теряется. Следовательно, в обоих случаях мы получили одинаковые результаты.
Использование дополнительного кода позволяет отказаться от установки в процессоре блока вычитания, что упрощает его конструкцию.
Максимальное значение числа формата short int:
Х max = 0111 1111 1111 1111 2 = 1000 0000 0000 0000 - 1 = 215 - 1 = 32767
Минимальное значение определяется кодом 1000 0000 0000 0000 2, которому соответствует число -32768.
Рассмотрим формирование отрицательного минимума для формата short int.
800016 = 1000 0000 0000 00002
1111 1111 1111 1111 - доп.код числа -1
+ 1000 0000 0000 0001 - доп.код числа -111 1111 1111 1111 = - (215 - 1)
1 1000 0000 0000 0000
Единица переноса из старших складываемых разрядов отбрасывается.
Результат: 8000 = - (215 - 1) - 1 = - 215 = - 32768 .
При анализе содержимого полей памяти ПК нередко возникает обратная задача: по дополнительному коду определить прямой код отрицательного числа. Здесь можно выполнить действия, обратные по отношению к описанным выше: вычесть единицу из младшего разряда, а затем заменить каждую цифру ее дополнением до максимальной цифры данной системы счисления. Однако проще воспользоваться следующим правилом: дополнительный код дополнительного кода есть прямой код числа. В этом случае исчезает необходимость выполнять операцию вычитания.
Пример 10. (для 16 с/с):
исходное число - 5B9538B6
дополнительный код A46AC74A
дополнительный код дополнительного кода - 5B9538B6