Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:

Лабораторная работа № 7

.1.pdf
Скачиваний:
33
Добавлен:
09.05.2015
Размер:
167.1 Кб
Скачать

ЛАБОРАТОРНАЯ РАБОТА № 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 ∙ 22–41 = 2( 5–41 = 261 = 2–" *1 = 2–" ? ≈ 1,18 ∙ 10( *

Страница 7 из 7