Лабораторная работа № 7
.1.pdfЛАБОРАТОРНАЯ РАБОТА № 7
Формы представления чисел в ЭВМ (Часть 1)
Цель работы: научиться определять значения целых и вещественных чисел по их внутреннему представлению в компьютере.
Варианты заданий: для своего номера варианта N (номер студента по списку в журнале) – определить число YZ = N + 16, которое состоит из двух цифр Y и Z, где Z – количество единиц числа YZ, а Y – количество десятков числа YZ. Например, номер варианта задания (номер студента по списку в журнале) N = 40, тогда число YZ = 56.
Задания:
1)Определить диапазон представления целых чисел без знака и со знаком в формате с фиксированной запятой 8 бит, 16 бит и 32 бита.
2)Представить числа +YZ10 и –YZ10 в знаковом формате целого числа с фиксированной запятой 8 бит:
3)Перевести число (YZ10 +170) в двоичную систему счисления с помощью калькулятора (Пуск>Программы>Стандартные). Для этого переключатель «Hex Dec Oct Bin» перевести в положение «Bin», затем переключатель «8 байт 4 байта 2 байта 1 байт» перевести в положение «1 байт». После этого переключатель «Hex Dec Oct Bin» перевести в положение «Dec», ввести число для своего варианта и перевести переключатель «Hex Dec Oct Bin» в положение «Bin». По полученному таким образом внутреннему представлению числа в ЭВМ в формате целого числа с фиксированной запятой 8 бит записать число в десятичной системе счисления.
4)Определить диапазон представления вещественных чисел в формате с плавающей запятой одинарной точности 32 бита (1 бит знак, 8 бит порядок, 23 бита мантисса), двойной точности 64 бита (1 бит знак, 11 бит порядок, 52 бита мантисса).
5)Ответить на контрольные вопросы к работе. Оформить отчет о лабораторной работе (форма отчета приведена ниже). Сдать напечатанный и подписанный студентом отчет на следующем занятии.
Контрольные вопросы к лабораторной работе:
1)Какие основные формы представления чисел применяются в ЭВМ?
2)В какой системе счисления представляются числа в ЭВМ?
3)Какие единицы представления данных используются в ЭВМ?
4)Как представляются целые положительные и отрицательные числа в ЭВМ?
5)Каков общий вид представления в ЭВМ числа с плавающей запятой?
6)Что называют мантиссой и порядком числа?
7)Какова относительная точность представления чисел в ЭВМ с плавающей запятой одинарной точности и двойной точности?
Страница 1 из 7
Министерство образования и науки Российской Федерации Южно-Уральский государственный университет Факультет «Приборостроительный»
Кафедра «Информационно-измерительная техника»
Формы представления чисел в ЭВМ
ОТЧЁТ о лабораторной работе № 7 (Часть 1)
Вариант № N
Проверил, (доцент)
_______________ /Петров П.П./
_______________ 20__ г.
Выполнил:
студент группы ХХ-000
_______________ /Иванов И.И./
_______________ 20__ г.
Челябинск 2013
Страница 2 из 7
Цель работы: ____________________________________________________
________________________________________________________________________
Ход работы:
Задание №__
________________________________________________________________________
________________________________________________________________________
Решение:
________________________________________________________________________
________________________________________________________________________
________________________________________________________________________
________________________________________________________________________
Задание №__
________________________________________________________________________
________________________________________________________________________
Решение:
________________________________________________________________________
________________________________________________________________________
________________________________________________________________________
________________________________________________________________________
Задание №__
________________________________________________________________________
________________________________________________________________________
Решение:
________________________________________________________________________
________________________________________________________________________
________________________________________________________________________
________________________________________________________________________
Ответы на контрольные вопросы к лабораторной работе:
________________________________________________________________________
________________________________________________________________________
________________________________________________________________________
________________________________________________________________________
________________________________________________________________________
________________________________________________________________________
Страница 3 из 7
ПРИЛОЖЕНИЕ
Справочные материалы к заданиям
1)Определим диапазон представления целых чисел без знака в формате с фиксированной запятой 8 бит. В этом формате все 8 бит используются для представления двоичных разрядов числа.
Тогда наибольшее число будет состоять из двоичных единиц:
|
1 |
1 |
1 |
1 |
1 |
1 |
1 |
1 |
|
|
|
|
|
|
|
|
|
Номер бита |
7 |
6 |
5 |
4 |
3 |
2 |
1 |
0 |
В десятичном представлении это число равно:
1111 11112 → 1·27 + 1·26 + 1·25 + 1·24 + 1·23 + 1·22 + 1·21 + 1·20 = 25510
Наименьшее возможное число будет состоять из двоичных нулей:
|
0 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
|
|
|
|
|
|
|
|
|
Номер бита |
7 |
6 |
5 |
4 |
3 |
2 |
1 |
0 |
В десятичном представлении это число равно:
0000 00002 → 0·27 + 0·26 + 0·25 + 0·24 + 0·23 + 0·22 + 0·21 + 0·20 = 010
Таким образом, диапазон представления целых чисел без знака в формате с фиксированной запятой 8 бит составляет (0…255)10. Ширина полученного интервала составляет 256 целых чисел.
Определим диапазон представления целых чисел без знака в формате с фиксированной запятой 8 бит. В этом формате старший бит используется для кодирования знака числа («+» – 0, «–» – 1), а оставшиеся 7 бит используются для представления двоичных разрядов числа.
При этом положительные числа представляются в прямом коде. Прямой код числа совпадает с двоичным кодом числа, дополненным слева необходимым количеством незначащих нулей.
Тогда наибольшее число с учетом знака будет иметь вид:
|
0 |
1 |
1 |
1 |
1 |
1 |
1 |
1 |
|
|
|
|
|
|
|
|
|
Номер бита |
+/– |
6 |
5 |
4 |
3 |
2 |
1 |
0 |
В десятичном представлении это число равно:
+0111 11112 → +(0·27 + 1·26 + 1·25 + 1·24 + 1·23 + 1·22 + 1·21 + 1·20) = +(27–1) = +12710
Отрицательные числа представляются в дополнительном коде. Дополнительный код числа получается из прямого путем инвертирования всех его разрядов и прибавлению к полученному результату единицы. Это же правило справедливо и для обратного преобразования.
Страница 4 из 7
Рассмотрим следующее представление числа в формате со знаком:
|
1 |
1 |
1 |
1 |
1 |
1 |
1 |
1 |
|
|
|
|
|
|
|
|
|
Номер бита |
+/– |
6 |
5 |
4 |
3 |
2 |
1 |
0 |
Поскольку старший знаковый бит равен 1, то это означает, что число отрицательное, что, в свою очередь, означает, что оно представлено в дополнительном коде, поэтому сначала необходимо получить прямой код числа:
|
|
1 |
1 |
1 |
1 |
1 |
1 |
1 |
1 |
Дополнительный код |
|
|
|
|
|
|
|
|
|
|
|
|
|
0 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
Инверсный код |
|
|
|
|
|
|
|
|
|
|
|
|
+ |
|
|
|
|
|
|
|
1 |
Прибавление единицы |
|
|
|
|
|
|
|
|
|
|
|
|
|
0 |
0 |
0 |
0 |
0 |
0 |
0 |
1 |
Прямой код |
|
|
|
|
|
|
|
|
|
|
|
Номер бита |
7 |
6 |
5 |
4 |
3 |
2 |
1 |
0 |
|
В десятичном представлении это число равно:
–0111 11112 → –(0·27 + 0·26 + 0·25 + 0·24 + 0·23 + 0·22 + 0·21 + 1·20) = –110
Полученное число не является наименьшим. Рассмотрим следующее представление числа в формате со знаком:
|
|
1 |
0 |
|
0 |
0 |
0 |
0 |
0 |
0 |
|
|
|
|
|
|
|
|
|
|
|
|
|
Номер бита |
|
+/– |
6 |
|
5 |
4 |
3 |
2 |
1 |
0 |
|
Получим прямой код числа: |
|
|
|
|
|
|
|
||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
0 |
|
0 |
0 |
0 |
0 |
0 |
0 |
Дополнительный код |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
0 |
1 |
|
1 |
1 |
1 |
1 |
1 |
1 |
Инверсный код |
|
|
|
|
|
|
|
|
|
|
|
|
|
+ |
|
|
|
|
|
|
|
|
1 |
Прибавление единицы |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
0 |
|
0 |
0 |
0 |
0 |
0 |
0 |
Прямой код |
|
|
|
|
|
|
|
|
|
|
|
|
Номер бита |
7 |
6 |
|
5 |
4 |
3 |
2 |
1 |
0 |
|
В десятичном представлении это число равно:
–1000 0002 → –(1·27 + 0·26 + 0·25 + 0·24 + 0·23 + 0·22 + 0·21 + 0·20) = –27= –12810
Таким образом, диапазон представления целых чисел без знака в формате с фиксированной запятой 8 бит составляет (–128…127)10. При этом, ширина полученного интервала, также как и в случае с форматом без знака, составляет 256 целых чисел.
Страница 5 из 7
2)Представим число (+6210) в знаковом формате целого числа с фиксированной запятой 8 бит. Поскольку число положительно, то оно должно быть представлено в прямом коде. Для этого сначала число переводится в двоичную систему счисления:
+6210 → +11 11102,
а затем полученный код дополняется слева нулями до восьми бит:
|
0 |
0 |
1 |
1 |
1 |
1 |
1 |
0 |
Прямой код |
|
|
|
|
|
|
|
|
|
|
Номер бита |
+/– |
6 |
5 |
4 |
3 |
2 |
1 |
0 |
|
Представим число (–6210) в знаковом формате целого числа с фиксированной запятой 8 бит. Поскольку число отрицательно, то оно должно быть представлено в дополнительном коде. Для этого необходимо инвертировать прямой код числа и прибавить к результату единицу:
|
|
0 |
0 |
1 |
1 |
1 |
1 |
1 |
0 |
Прямой код |
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
1 |
0 |
0 |
0 |
0 |
0 |
1 |
Инверсный код |
|
|
|
|
|
|
|
|
|
|
|
|
+ |
|
|
|
|
|
|
|
1 |
Прибавление единицы |
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
1 |
0 |
0 |
0 |
0 |
1 |
0 |
Дополнительный код |
|
|
|
|
|
|
|
|
|
|
|
Номер бита |
|
+/– |
6 |
5 |
4 |
3 |
2 |
1 |
0 |
|
3)Пусть после описанных в задании преобразований получен следующий код:
|
1 |
1 |
1 |
0 |
0 |
1 |
1 |
0 |
|
|
|
|
|
|
|
|
|
Номер бита |
+/– |
6 |
5 |
4 |
3 |
2 |
1 |
0 |
Поскольку старший (знаковый) бит равен 1, то это означает, что число отрицательное, что, в свою очередь, означает, что оно представлено в дополнительном коде, поэтому сначала необходимо получить прямой код числа:
|
|
1 |
1 |
1 |
0 |
1 |
0 |
0 |
0 |
Дополнительный код |
|
|
|
|
|
|
|
|
|
|
|
|
|
0 |
0 |
0 |
1 |
0 |
1 |
1 |
1 |
Инверсный код |
|
|
|
|
|
|
|
|
|
|
|
|
+ |
|
|
|
|
|
|
|
1 |
Прибавление единицы |
|
|
|
|
|
|
|
|
|
|
|
|
|
0 |
0 |
0 |
1 |
1 |
0 |
0 |
0 |
Прямой код |
|
|
|
|
|
|
|
|
|
|
|
Номер бита |
7 |
6 |
5 |
4 |
3 |
2 |
1 |
0 |
|
В десятичном представлении искомое число равно:
–0111 11112 → –(0·27 + 0·26 + 0·25 + 1·24 + 1·23 + 0·22 + 0·21 + 0·20) = –2410
Страница 6 из 7
4)Определим диапазон представления вещественных чисел в формате с плавающей запятой одинарной точности 32 бита (1 бит знак, 8 бит порядок, 23 бита мантисса).
Число в формате с плавающей запятой представляется в виде:
= ∙
где – число в формате с фиксированной запятой;– мантисса числа ; – порядок числа ;
– основание системы счисления, в котором представлено число .
Формат представления в ЭВМ числа с плавающей запятой одинарной точности имеет следующую структуру:
Знак |
Смещенный порядок p |
|
|
|
|
|
|
|
|
|
Мантисса m |
||||||||||||||||||||
1 бит |
|
|
|
8 бит |
|
|
|
|
|
|
|
|
|
|
23 бита |
||||||||||||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
31 |
30 |
23 |
22 |
0 |
|||||||||||||||||||||||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Определим максимальное по модулю (без учета знака) число в этом формате. Такое число должно иметь максимальную мантиссу и максимальный порядок.
Максимальное значение двоичной мантиссы составляет:
|
|
= 1, 1111 1111 1111 1111 1111 111 = 1,99999988"# ≈ 2 |
|
|
|
|
|
знака мантиссы |
(все двоичные мантиссы имеют в целой части единицу, которая при представлении числа в ЭВМ отбрасывается, а представляются только 23 разряда после запятой).
Порядок числа представляется в формате целого числа со знаком с фиксированной запятой. Поскольку для представления порядка выделено n = 8 бит, то максимальное его значение составит:
= +2'(" − 1 = +2*(" − 1 = +2+ − 1 = +127
Таким образом,
| | = ∙ 2 ./0 ≈ 2 ∙ 21 2–4(" = 21 2–4 = 21 5–4 = 21 6 = 21" * ≈ 3,40 ∙ 101 *
Определим минимальное по модулю (без учета знака) число в этом формате. Такое число должно иметь минимальную мантиссу и минимальный порядок.
Минимальное значение двоичной мантиссы составляет:
:; = 1, 0000 0000 0000 0000 0000 000 = 1"#
знака мантиссы
Минимальное значение порядка составит:
= −2 '(" = −2*(" = −128
Однако в форматах чисел с плавающей запятой два нижних значения порядка зарезервированы, поэтому минимальное значение порядка составит:
:; = − 2'(" − 2 = −2'(" + 2 = −2*(" + 2 = −2+ + 2 = −128 + 2 = −126
Таким образом,
| :; | = :; ∙ 2 .=> ≈ 1 ∙ 2– 2–41 = 2( 5–41 = 2– 61 = 2–" *1 = 2–" ? ≈ 1,18 ∙ 10( *
Страница 7 из 7