7


  • Учителю
  • Урок на тему 'Представление чисел в формате фиксированной запятой'

Урок на тему 'Представление чисел в формате фиксированной запятой'

Автор публикации:
Дата публикации:
Краткое описание:
предварительный просмотр материала

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

Цель урока. Углубить знания учащихся о представлении чисел в формате с фиксированной запятой в памяти компьютера.

ЦОР: презентация «Представление чисел в формате с фиксированной запятой»


Ход урока:

Организационный момент:

Приветствие учащихся, проверка явки, объявление темы и цели урока.

Объяснение нового материала (с использованием презентации)

Ребята, на прошлых уроках мы познакомились с представлением чисел в различных системах счисления, переводом чисел из одной системы счисления в другую. Вы научились выполнять арифметические операции в различных позиционных системах счисления.

А как представляются числа в памяти компьютера? Есть ли отличия в машинном выполнении арифметических операций?

Сегодня мы попробуем разобраться в этих вопросах применительно к целым числам.

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

Изучаемые вопросы:

  • Представление целых чисел в памяти компьютера.

  • Представление отрицательных чисел в памяти компьютера.

  • Размер ячейки и диапазон значений чисел.

  • Особенности работы компьютера с целыми числами.

Целые числа в компьютере хранятся в памяти в формате с фиксированной запятой. В этом случае каждому разряду ячейки памяти соответствует всегда один и тот же разряд числа, а запятая находится справа после младшего разряда, т. е. вне разрядной сетки.

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

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


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

Минимальное число соответствует восьми нулям, хранящимся в восьми ячейках памяти, и равно нулю.

Максимальное значение целого неотрицательного числа достигается в случае, когда во всех ячейках хранятся единицы. Для n-разрядного представления оно будет равно

2n - 1.

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

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

Максимальное число соответствует восьми единицам, хранящимся в ячейках памяти, и равно:

А = 1·27 +1·26 +1·25 + 1·24 + 1·23 + 1·22 + 1·21 + 1·2° = 1·28 - 1 = 25510.

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


Целые числа со знаком. Для хранения целых чисел со знаком отводится две ячейки памяти (16 битов), а для хранения больших целых чисел со знаком отводится четыре ячейки памяти (32 бита). Старший (левый) разряд отводится под знак числа (если число положительное, то в знаковый разряд записывается 0, если число отрицательное - записывается 1).

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


При представлении целых чисел в n-разрядном представлении со знаком максимальное положительное число (с учетом выделения одного разряда на знак) равно

А = 2n-1 - 1.

Минимальное отрицательное число равно А = -2n-1.

Определиv диапазон чисел, которые могут храниться в оперативной памяти в формате:

  • целых чисел со знаком;

  • больших целых чисел со знаком.

а) Максимальное положительное целое число в формате целых чисел со знаком равно:

А10 = 215 - 1 = 32 76710.

Минимальное отрицательное целое число равно

А10 = -215 = -3276810.

б) Максимальное положительное целое число в формате больших целых чисел со знаком равно

А10 = 231 - 1 = 2 147 483 64710.

Минимальное отрицательное целое число равно

А10 = -231 = -2 147 483 64810.


А как представляются отрицательные числа в памяти компьютера? Достаточно ли только в старшем разряде, выделенном для хранения знака, указать 1?

Проверим на простом примере 3+(-3)=0.

00000011

+10000011

10000110  0

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

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

Дополнительный код представляет собой дополнение модуля отрицательного числа А до 0, поэтому в n-разрядной компьютерной арифметике:

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

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

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

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

216

=

100000000000000002

6553610

200210

=

00000111110100102

200210

216- |200210|

=

11111000001011102

6353410


Проведем проверку с использованием десятичной системы счисления. Дополнительный код 63 53410 в сумме с модулем отрицательного числа 200210 равен 6553610, т. е. дополнительный код дополняет модуль отрицательного числа до 216 (до нуля 16-разрядной компьютерной арифметики).

Алгоритм получения дополнительного кода.

Для получения дополнительного кода отрицательного числа можно использовать довольно простой алгоритм:

  1. Модуль числа записать прямым кодом в п двоичных разрядах.

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

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


Задание «Вычисление дополнительного кода числа с использованием обратного кода». Вычислить дополнительный код отрицательного числа -2002 для 16-разрядного компьютерного представления с использованием алгоритма.

Прямой код

|-2002|

00000111110100102

Обратный код

Инвертирование

11111000001011012


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

11111000001011012

+00000000000000012

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


11111000001011102


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

Представим положительное число в прямом, а отрицательное число - в дополнительном коде:

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

Прямой код

Обратный код

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

20

00000000 000101002

-30

00000000 000111102

11111111 111000012

11111111 111000012

00000000 000000012

11111111 111000102


Сложим прямой код положительного числа с дополнительным кодом отрицательного числа. Получим результат в дополнительном коде:

2010 - 3010® 11111111 111101102

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

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

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

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

Вспомним алгоритм получения дополнительного кода:

  1. Модуль числа записать прямым кодом в п двоичных разрядах.

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

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

Если выполнить этот алгоритм в обратном порядке, то тоже сможем перевести полученный дополнительный код в десятичное число.

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

Ожидаемый ответ. Замена операции вычитания операцией сложения существенно упрощает работу процессора и увеличивает его быстродействие.

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

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

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

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

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

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

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

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

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

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

Выполняя на компьютере вычисления с целыми числами, нужно помнить об ограниченности диапазона допустимых значений.

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

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

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

Результат: 10001011 - т.е. число отрицательное

Инвертируем: 01110100

Прибавляем 1: 01110101

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

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


Практикум (у интерактивной доски работает один ученик, остальные самостоятельно)

1. Записать внутреннее представление следующих десятичных чисел,

  • используя 8-разрядную ячейку: а) 64 б) -120 в) -96 г) 57

а)

0

1

0

0

0

0

0

0

б)

1

0

0

0

1

0

0

0

в)

1

0

1

0

0

0

0

0

г)

0

0

1

1

1

0

0

1


а) 64 = 0100 0000

б) -120  |-120|=01111000  10000111 + 1 = 10001000

Проверка б):

01111000

+10001000

100000000

в) -96  |-96|=01100000  10011111 + 1 = 10100000

г) 57 = 0011 1001

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

д)

1

1

0

0

0

1

0

1

0

0

0

0

0

1

1

0

е)

0

0

0

1

1

0

0

1

0

1

1

1

1

1

0

0

ж)

1

0

0

0

1

1

1

0

1

1

0

0

0

1

0

1

д) -15098  |-15098|=0011 1010 1111 1010  1100010100000101 + 1 = 1100010100000110

е) 6524 = 0001 1001 0111 1100

ж) -28987  |-28987|=0111 0001 0011 1011  1000111011000100 + 1 = 1000111011000101

Проверка в):

0111000100111011

+1000111011000101

10000000000000000


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

а) 00100111 = 32+4+2+1 = 41

б) 11001110  00110001+1=00110010  32+16+2 = 50  -50

в) 10101010  01010101+1=01010110  64+16+4+2 = 86  -86

г) 01111110 = 64+32+16+8+4+2= 126


Подведение итогов урока

  1. Дать общую характеристику работы класса.

  2. Показать успешность овладения содержанием урока.

  3. Вскрыть недостатки, показать пути их преодоления.

  4. Выставление оценок

Домашнее задание:

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

Выполнить: №1(в,г,е,ж), №2(в,г), №2.14 (с.147) и №2.15 (с.148)




 
 
X

Чтобы скачать данный файл, порекомендуйте его своим друзьям в любой соц. сети.

После этого кнопка ЗАГРУЗКИ станет активной!

Кнопки рекомендации:

загрузить материал