Представление чисел в формате с фиксированной...

18
Представление чисел Представление чисел в формате в формате с фиксированной запятой с фиксированной запятой Изучаемые вопросы: • Представление целых чисел в памяти компьютера. • Представление отрицательных чисел в памяти компьютера. • Размер ячейки и диапазон значений чисел. • Особенности работы компьютера с целыми числами. 23 ноября

Upload: kelly-jarvis

Post on 03-Jan-2016

83 views

Category:

Documents


0 download

DESCRIPTION

Представление чисел в формате с фиксированной запятой. 23 ноября. Изучаемые вопросы: Представление целых чисел в памяти компьютера. Представление отрицательных чисел в памяти компьютера. Размер ячейки и диапазон значений чисел. Особенности работы компьютера с целыми числами. - PowerPoint PPT Presentation

TRANSCRIPT

Page 1: Представление чисел  в формате  с фиксированной запятой

Представление чисел Представление чисел в формате в формате

с фиксированной запятойс фиксированной запятой

Изучаемые вопросы:• Представление целых чисел в памяти компьютера.• Представление отрицательных чисел в памяти компьютера.• Размер ячейки и диапазон значений чисел.• Особенности работы компьютера с целыми числами.

23 ноября

Page 2: Представление чисел  в формате  с фиксированной запятой

ПРЕДСТАВЛЕНИЕ ЦЕЛЫХ ЧИСЕЛ В ФОРМАТЕ С ФИКСИРОВАННОЙ ЗАПЯТОЙ

Целые числа в компьютере хранятся в памяти в формате с фиксированной запятой.

При хранении чисел в памяти в формате с фиксированной запятой каждому разряду ячейки памяти соответствует всегда один и тот же разряд числа, а запятая находится справа после младшего разряда, т.е. вне разрядной сетки.

Достоинства: • простота и наглядность представления чисел;• простота алгоритмов реализации арифметических операций (вычитание заменяется сложением).

Недостаток:• конечный диапазон представления величин, недостаточный для решения задач, в которых используются очень малые и/или очень большие числа.

0 0 0 0 1 0 1 01010=10102

Page 3: Представление чисел  в формате  с фиксированной запятой

ЦЕЛЫЕ НЕОТРИЦАТЕЛЬНЫЕ ЧИСЛА

Для хранения целых неотрицательных чисел отводится одна ячейка памяти (8 битов).

Минимальное число:

Максимальное число:

Для n-разрядного представления максимальное целое неотрицательное число равно 2n – 1.

Минимальное число равно 0.

Максимальное число равно 25510.

111111112 = 1000000002 -1 = 28 – 1 = 25510

Диапазон изменения целых неотрицательных чисел от 0 до 255.

0 0 0 0 0 0 0 0

1 1 1 1 1 1 1 1

Page 4: Представление чисел  в формате  с фиксированной запятой

ЦЕЛЫЕ ЧИСЛА СО ЗНАКОМ

Представление в компьютере положительных чисел с использованием формата «знак-величина» называется

прямым кодом числа.

Старший (левый) разряд отводится под знак числа: 0 – положительное число,1 – отрицательное число.

Для хранения целых чисел со знаком отводится две ячейки памяти (16 битов).

Для хранения больших целых чисел со знаком отводится четыре ячейки памяти (32 бита).

1 0 0 0 0 0 0 0 0 0 1 1 1 1 1 1

0 0 1 1 1 1 1 1

Page 5: Представление чисел  в формате  с фиксированной запятой

ЦЕЛЫЕ ЧИСЛА СО ЗНАКОМ

Для n-разрядного представления со знаком (с учетом выделения одного разряда на знак):

максимальное положительное число равно 2n-1 – 1,

минимальное отрицательное число равно – 2n-1

Диапазон хранения целых чисел со знаком от – 32 768 до 32 767.

Диапазон хранения больших целых чисел со знаком

от – 2 147 483 648 до 2 147 483 647.

А10 = 215 – 1 = 3276710

А10 = – 215 = – 3276810

А10 = 231 – 1 = 2 147 483 647 10

А10 = – 231 = – 2 147 483 648 10

Page 6: Представление чисел  в формате  с фиксированной запятой

ЦЕЛЫЕ ЧИСЛА СО ЗНАКОМ

3 +(-3) = 0

1 0 0 0 0 1 1 0 ≠ 0

1 0 0 0 0 0 1 10 0 0 0 0 0 1 1

Page 7: Представление чисел  в формате  с фиксированной запятой

ДОПОЛНИТЕЛЬНЫЙ КОД

Для представления отрицательных чисел используется дополнительный код, позволяющий заменить арифметическую

операцию вычитания операцией сложения.

Дополнительный код представляет собойдополнение модуля числа А до 0.

Дополнительный код отрицательного числа А, хранящегося в n ячейках, равен 2n - |А|.

Это равенство тождественно справедливо, так как в компьютерной n-разрядной арифметике 2n ≡ 0. Действительно, двоичная запись числа 2n состоит из одной единицы и n нулей, а в n-разрядную ячейку может уместиться только n младших разрядов, т.е. n нулей.

28=100000000

0 0 0 0 0 0 0 0

2n - |А| + |А| = 0

Page 8: Представление чисел  в формате  с фиксированной запятой

ДОПОЛНИТЕЛЬНЫЙ КОД

Найдём дополнительный код отрицательного числа –200210 при n=16:

2n 216 = 1 00000000 000000002 6553610

|А| 200210 = 00000111 110100102 200210

2n - |А| 216- |200210| = 11111000 001011102 6353410

1 1 1 1 1 0 0 0 0 0 1 0 1 1 1 0

0 0 0 0 0 1 1 1 1 1 0 1 0 0 1 0

0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0

2n - |А|

|А|

1

2n - |А| + |А| = 0

2n - |А|

Page 9: Представление чисел  в формате  с фиксированной запятой

АЛГОРИТМ ПОЛУЧЕНИЯ ДОПОЛНИТЕЛЬНОГО КОДА

Алгоритм получения дополнительного кода отрицательного числа:1. Модуль числа записать прямым кодом в n двоичных

разрядах.2. Получить обратный код числа, для этого значения

всех битов инвертировать.3. К полученному обратному коду прибавить единицу.

Прямой код |-200210| 00000111 110100102

Обратный код Инвертирование 11111000 001011012

Прибавление единицы 11111000 001011012

00000000 000000012

Дополнительный код 11111000 001011102

Найдём дополнительный код отрицательного числа –200210 при n=16:

+

Page 10: Представление чисел  в формате  с фиксированной запятой

ВЫПОЛНЕНИЕ АРИФМЕТИЧЕСКОГО ДЕЙСТВИЯ

Выполнить арифметическое действие 2010 – 3010 в 16-разрядном компьютерном представлении.

00000000 000101002

11111111 111000102

11111111 111101102

Десятичное число

Прямой код Обратный код Дополнительный код

20 00000000 000101002

-30 00000000 000111102 11111111 111000012 11111111 111000012

00000000 000000012

11111111 111000102

2010 – 3010 11111111 111101102

+

+

Дополнительный код

Page 11: Представление чисел  в формате  с фиксированной запятой

ПЕРЕВОД ДОПОЛНИТЕЛЬНОГО КОДА В ДЕСЯТИЧНОЕ ЧИСЛО

В 16-разрядном компьютерном представлении

2010 – 3010 11111111 111101102

Переведем полученный дополнительный код в десятичное число:

1. Инвертируем дополнительный код:

00000000 00001001

2. К полученному коду прибавим 1 (получим модуль отрицательного числа):

00000000 000010103. Переведем в десятичное число и припишем знак

отрицательного числа: -10

Page 12: Представление чисел  в формате  с фиксированной запятой

ПЕРЕВОД ДОПОЛНИТЕЛЬНОГО КОДА В ДЕСЯТИЧНОЕ ЧИСЛО

В 16-разрядном компьютерном представлении

2010 – 3010 11111111 111101102

Переведем полученный дополнительный код в десятичное число:

1. Отнимем 1 от дополнительного кода:

11111111 11110101

2. Инвертируем полученное число:

00000000 000010103. Переведем в десятичное число и припишем знак

отрицательного числа: -10

Почему не применяется данный метод перевода дополнительного кода в десятичное число?

Page 13: Представление чисел  в формате  с фиксированной запятой

ПРАКТИКУМ

Задача. Найти минимальное отрицательное число в 8-разрядном компьютерном представлении

1 0 0 0 0 0 0 0Переведем дополнительный код 1000000 в десятичное число:

1. Инвертируем дополнительный код: 011111112. К полученному коду прибавим 1 (получим модуль отрицательного

числа): 100000003. Переведем в десятичное число и припишем знак отрицательного

числа: -128

Для n-разрядного представления со знаком минимальное отрицательное число равно –2n-1

Page 14: Представление чисел  в формате  с фиксированной запятой

ПРАКТИКУМ

Задача. Найти максимальное отрицательное число в 8-разрядном компьютерном представлении

1 1 1 1 1 1 1 1Переведем дополнительный код 11111111 в десятичное число:

1. Инвертируем дополнительный код: 000000002. К полученному коду прибавим 1 (получим модуль отрицательного

числа): 000000013. Переведем в десятичное число и припишем знак отрицательного

числа: -1

Page 15: Представление чисел  в формате  с фиксированной запятой

Выполняя на компьютере вычисления с целыми числами, нужно помнить

об ограниченности диапазона допустимых значений.

Выход результата за границы допустимого диапазона называется

переполнением.

Переполнение при вычислениях с целыми числами не вызывает прерывания работы

процессора, но результаты могут оказаться неправильными.

ОСОБЕННОСТИ РАБОТЫ С ЦЕЛЫМИ ЧИСЛАМИ

Page 16: Представление чисел  в формате  с фиксированной запятой

ПРАКТИКУМ

Задача. Компьютер работает только с целыми числами, представленными в однобайтовой ячейке памяти. Какое значение будет получено в результате вычисления значения арифметического выражения 100+39?

Переведем в десятичное число и припишем знак отрицательного числа:

Решение:

Внутреннее представление числа 100: 01100100

Внутреннее представление числа 39: 00100111

Внутреннее представление суммы 100+39: 10001011

Знаковый разряд равен 1, значит число отрицательное.

Инвертируем код:

01110100

Прибавим 1: 01110101

-117

Переполнение привело к неправильному результату!

Page 17: Представление чисел  в формате  с фиксированной запятой

ПРАКТИКУМ

1. Записать внутреннее представление следующих десятичных чисел, • используя 8-разрядную ячейку: а) 64 б) -120 в) -96 г) 57

• используя 16-разрядную ячейку: а) -15098 б) 6524 в) -28987

2. Определите, каким десятичным числам соответствуют следующие двоичные коды 8-разрядного представления целых чисел:

а) 00100111 б) 11001110 в) 10101010 г) 01111110

Page 18: Представление чисел  в формате  с фиксированной запятой

ЗАДАНИЕ НА ДОМ

Учить:§ 2.10.1 (с.143-148)

Выполнить: №2.14 (с.147) и №2.15 (с.148)