Урок информатики для 10 класса
(профильный информационно-технологического класс)
Тема: «Представление чисел в компьютере».
Цель: познакомить учащихся с представлением целых и вещественных чисел в памяти компьютера.
Тип урока: изучение нового материала
Оборудование: интерактивная доска, презентация к интерактивной доске, карточки с разноуровневыми заданиями, карточки для индивидуальной оценки результатов.
План урока:
Организационный момент 3 мин
Актуализация знаний 7 мин
Объяснение нового материала 40 мин
Первичное закрепление 10 мин
Практическая работа 14 мин
Подведение итогов 3 мин
Домашнее задание 3 мин
Ход урока:
Организационный момент
Актуализация знаний
Числовая информация была первым видом информации, который начали обрабатывать ЭВМ, и долгое время она оставалась единственным видом. А как вы думаете представлена числовая информация в памяти компьютера? (в виде двоичного кода)
Раз числа в компьютере представлены в виде двоичного кода, давайте вспомним алгоритм перевода из десятичной системы счисления в двоичную и обратно (учитель вызывает к доске ученика и помогает ему в решении примера).
6310→А2→1111112
29,1510→А2 →11101,0010…2
1011012→А10→4510
Объяснение нового материала
В современном компьютере существует большое разнообразие типов и представлений чисел. Прежде всего, это целые и вещественные числа, которые по своей сути и по представлению в машине различаются очень существенно. Целые числа, в свою очередь, делятся на числа со знаком и без знака, имеющие уже не столь существенные различия.
Целые числа хранятся в памяти компьютера в формате с фиксированной запятой.
Вещественные числа в формате с плавающей запятой.
Учитель показывает в презентации схему, а ученики зарисовывают ее в тетрадь
| Типы чисел |
| Целые Формат с фиксированной запятой | Вещественные Формат с плавающей запятой |
| Числа со знаком | Числа без знака | |
| | | |
Мы с вами будем рассматривать типы чисел в порядке увеличения их сложности.
В математических задачах не так часто встречаются величины, не имеющие отрицательных значений, но беззнаковые типы данных получили в ЭВМ большое распространение. Главная причина состоит в том, что в самой машине и программах для нее имеется много такого рода объектов: прежде всего, адреса ячеек, а также всевозможные счетчики (количество повторений циклов, число параметров в списке или символов в тексте). К этому списку стоит добавить числа, обозначающие дату и время, размеры графических изображений в пикселях. Всё перечисленное выше всегда и во всех программах принимает только целые и неотрицательные значения.
Для хранения целых неотрицательных чисел отводится одна ячейка памяти (8 бит). Например, число А2=101010102 (учитель показывает на доске, ученики в тетради) будет храниться в ячейке памяти следующим образом (учитель показывает на доске, ученики в тетради):
Минимальное число соответствует восьми нулям, хранящимся в восьми ячейках памяти, и равное нулю.
Максимальное значение целого неотрицательного числа достигается в случае когда во всех ячейках хранятся единицы. Для n-разрядного представления оно будет равно 2n – 1
Давайте определим, диапазон чисел, которые могут храниться в памяти компьютера в формате целого неотрицательного числа. Минимальное число, как мы уже сказали, соответствует восьми нулям и равно нулю. А максимальное число соответствует восьми единицам. Переведите число 111111112 в десятичную систему счисления (учитель вызывает ученика к интерактивной доске, ученик переводит число). Итак, получилось число 255, а это значит, что диапазон изменения целых неотрицательных чисел от 0 до 255.
Запишем алгоритм представления целого числа без знака в памяти компьютера:
Перевести число в двоичную систему счисления.
Нарисовать восьми-разрядную сетку.
Записать число в разрядную сетку, начиная с младшего разряда.
Заполнить оставшиеся разряды нулями.
Представим число 2110 в восьми-разрядной или однобайтовой сетке. (учитель показывает на доске, ученики записывают в тетрадь)
Переведем число 2110 в двоичную систему счисления 101012
Нарисуем однобайтовую разрядную сетку
| номер разряда 7 | 6 | 5 | 4 | 3 | 2 | 1 | 0 |
| | | | | | | | |
Запишем число в разрядную сетку, начиная с младшего разряда
| 7 | 6 | 5 | 4 | 3 | 2 | 1 | 0 |
| | | | 1 | 0 | 1 | 0 | 1 |
Заполним оставшиеся разряды нулями
| 7 | 6 | 5 | 4 | 3 | 2 | 1 | 0 |
| 0 | 0 | 0 | 1 | 0 | 1 | 0 | 1 |
Представьте число 3710 однобайтовой сетке (учитель вызывает к доске ученика и помогает ему в решении примера)
Переведем число 3710 в двоичную систему счисления 1001012
Нарисуем однобайтовую разрядную сетку
| номер разряда 7 | 6 | 5 | 4 | 3 | 2 | 1 | 0 |
| | | | | | | | |
Запишем число в разрядную сетку, начиная с младшего разряда
| 7 | 6 | 5 | 4 | 3 | 2 | 1 | 0 |
| | | 1 | 0 | 0 | 1 | 0 | 1 |
Заполним оставшиеся разряды нулями
| 7 | 6 | 5 | 4 | 3 | 2 | 1 | 0 |
| 0 | 0 | 1 | 0 | 0 | 1 | 0 | 1 |
Для хранения целых чисел со знаком отводится две ячейки памяти или 16 бит, а для ранения больших целых чисел со знаком – четыре ячейки памяти или 32 бита. Добавление отрицательных значений приводит к появлению некоторых новых свойств. Ровно половина из всех 2N чисел теперь будут отрицательными; учитывая необходимость нулевого значения, положительных будет на единицу меньше, т.е. допустимый диапазон значений оказывается принципиально несимметричным.
Для того чтобы различать положительные и отрицательные числа, в двоичном представлении чисел выделяется знаковый разряд. Для кодирования знака используется самый старший (левый) разряд, причем нулевое значение в нем соответствует знаку "+", а единичное – «-». Подчеркнем, что с точки зрения описываемой системы кодирования число ноль является положительным, т.к. все его разряды, включая и знаковый, нулевые.
Представление в компьютере положительных чисел с использованием формата «знак-величина» называется прямым кодом числа (записать в тетрадь). Например число 201110= 111110110112 будет представлено в 16-разрядном представлении следующим образом:
| 0 | 0 | 0 | 0 | 0 | 1 | 1 | 1 | 1 | 1 | 0 | 1 | 1 | 0 | 1 | 1 |
(учитель записывает на доске, ученики в тетради)
При представлении чисел в n-разрядном представлении со знаком максимальное положительное число со знаком (с учетом выделения одного разряда на знак) будет равно: A=2n-1 – 1 (учитель записывает формулу на доске)
Минимальное отрицательное число равно: A=2n-1(учитель показывает на доске формулу)
Определите диапазон чисел, которые могут храниться в памяти компьютера в формате:
Целых чисел со знаком
Больших целых чисел со знаком
Max= 216-1 – 1 = 3276710
Min= –216-1= –3276810
Max = = 232-1 – 1 = 2 147 483 64710
Min= –232-1= –214748364810
а) Целые числа со знаком «+»
Представление положительных чисел при переходе от беззнаковых чисел к целым со знаком сохраняется, за исключением того, что теперь для собственно числа остается на один разряд меньше.
Запишем алгоритм представления целого числа со знаком плюс в памяти компьютера:
Перевести число в двоичную систему счисления.
Нарисовать к–разрядную сетку.
Указать код знака «+» в старшем разряде.
Записать число в разрядную сетку, начиная с младшего разряда.
Заполнить оставшиеся разряды нулями.
Пример. Представить число +2510 в двухбайтовой разрядной сетке (учитель вызывает к доске ученика и помогает ему в решении примера)
Переведем число 2510 в двоичную систему счисления 110012
Нарисуем двухбайтовую разрядную сетку
| 15 | 14 | 13 | 12 | 11 | 10 | 9 | 8 | 7 | 6 | 5 | 4 | 3 | 2 | 1 | 0 |
| | | | | | | | | | | | | | | | |
Укажем код знака «+» в старшем разряде
| 15 | 14 | 13 | 12 | 11 | 10 | 9 | 8 | 7 | 6 | 5 | 4 | 3 | 2 | 1 | 0 |
| 0 | | | | | | | | | | | | | | | |
Запишем число в разрядную сетку, начиная с младшего разряда
| 15 | 14 | 13 | 12 | 11 | 10 | 9 | 8 | 7 | 6 | 5 | 4 | 3 | 2 | 1 | 0 |
| 0 | | | | | | | | | | | 1 | 1 | 0 | 0 | 1 |
Заполним оставшиеся разряды нулями
| 15 | 14 | 13 | 12 | 11 | 10 | 9 | 8 | 7 | 6 | 5 | 4 | 3 | 2 | 1 | 0 |
| 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 1 | 1 | 0 | 0 | 1 |
б) Целые числа со знаком «-»
Предположим что, кодировать отрицательные значения можно точно так же, как и положительные, только добавлять в старший бит единицу. Подобный способ кодирования называется прямым кодом. Несмотря на свою простоту и наглядность, для представления целых чисел он не получил применения в ЭВМ. Главной причиной является то, что, хотя сам код прост, действия над представленными в нем числами выполняются достаточно сложно. Поэтому для практической реализации кодирования отрицательных чисел используется дополнительный код. Дополнительный код позволяет заменить арифметическую операцию вычитания операцией сложения, что существенно упрощает работу процессора и увеличивает его быстродействие.
Запишем алгоритм представления целого числа со знаком минус в памяти компьютера:
Перевести модуль числа в двоичную систему счисления.
Записать число в прямом коде в n двоичных разрядах.
Получить обратный код числа, для этого значения всех битов инвертировать (все единицы заменить на нули, и все нули заменить на единицы).
Найти дополнительный код числа, прибавив к обратному коду единицу.
Нарисовать n–разрядную сетку.
Записать число в разрядную сетку.
Пример. Представить число -2510 в двухбайтовой разрядной сетке (учитель вызывает к доске ученика и помогает ему в решении примера)
Переведем число 2510 в двоичную систему счисления 110012
Запишем число в прямом коде в 16 двоичных разрядах
0 000 000 000 011 001
Получим обратный код числа, для этого значения всех битов инвертировать
1 111 111 111 100 110
Найдем дополнительный код числа, прибавив к обратному коду единицу
1 111 111 111 100 110
+ 1
1 111 111 111 100 111
Рисуем 16–разрядную сетку.
| 15 | 14 | 13 | 12 | 11 | 10 | 9 | 8 | 7 | 6 | 5 | 4 | 3 | 2 | 1 | 0 |
| | | | | | | | | | | | | | | | |
Запишем число в разрядную сетку.
| 15 | 14 | 13 | 12 | 11 | 10 | 9 | 8 | 7 | 6 | 5 | 4 | 3 | 2 | 1 | 0 |
| 1 | 1 | 1 | 1 | 1 | 1 | 1 | 1 | 1 | 1 | 1 | 0 | 0 | 1 | 1 | 1 |
Итак, мы усвоили алгоритм представления десятичных чисел в памяти компьютера, попробуем выполнить обратный алгоритм. Нам дан код (учитель показывает на доске, ученики в тетради)
| 15 | 14 | 13 | 12 | 11 | 10 | 9 | 8 | 7 | 6 | 5 | 4 | 3 | 2 | 1 | 0 |
| 1 | 1 | 1 | 1 | 1 | 0 | 0 | 0 | 0 | 0 | 1 | 0 | 0 | 1 | 0 | 1 |
Какое это будет число? Положительное или отрицательное? (отрицательное) тогда каким алгоритмом мы будем пользоваться? (алгоритмом получения дополнительного кода)
(учитель вызывает к доске ученика и помогает ему в решении примера)
Вычитаем из этого числа 1
1 1 1 1 1 0 0 0 0 0 1 0 0 1 0 1
– 1
1 1 1 1 1 0 0 0 0 0 1 0 0 1 0 0
Инвертируем
0 0 0 0 0 1 1 1 1 1 0 1 1 0 1 1
Переведем в десятичное число 111110110112=201110
Припишем знак «–»: –201110
Вещественные числа (конечные и бесконечные десятичные дроби) хранятся и обрабатываются в компьютере в формате с плавающей запятой. В этом случае положение запятой в записи числа может изменяться.
Формат чисел с плавающей запятой базируется на экспоненциальной форме записи, в которой может быть представлено любое число. Так число А может быть представлено в виде (учитель записывает формулу на доске):
А= т×qn
Где m – мантисса числа,
q – основание системы счисления,
n – порядок числа
Представление числа в форме с плавающей точкой неоднозначно. Например, справедливы следующие равенства (учитель показывает на доске, ученики в тетради): 25,324 = 2,5324 • 101 = 0,0025324 • 104 = 2532,4 • 10-2 и т. п.
В компьютере используют нормализованное представление числа в форме с плавающей точкой. Мантисса в нормализованном представлении должна удовлетворять условию: 0,1 т 1 . Иначе говоря, мантисса меньше единицы и первая значащая цифра — не ноль.
Это означает, что мантисса должна быть правильной дробью и иметь после запятой цифру, отличную от нуля.
Задание: преобразовать десятичное число 888,888 записанное в естественной форме, в экспоненциальную форму с нормализованной мантиссой. (учитель записывает на доске, ученики в тетради)
888,888=0,888888 × 103
Нормализованная мантисса m=0,888888, основание системы счисления q=10, порядок n=3 (т.к. мы передвинули запятую на 3 знака влево)
Представьте следующие числа в нормализованной форме (учитель вызывает к доске учеников и помогает им в решении примеров):
65,32110 0,65321×102
1001,012 0,100101×10100
6,7328 0,6732×101
Число в формате с плавающей запятой занимает в памяти компьютера 4 байта (число обычной точности) байта или 8байт (число двойной точности). При записи числа с плавающей запятой выделяются разряды для хранения знака мантиссы, знака порядка, порядка и мантиссы.
Давайте определим максимальное число и его точность для формата чисел обычной точности, если для хранения порядка и его знака отводится 8 разрядов, а для хранения мантиссы и его знака – 24 разряда (учитель показывает на доске, ученики в тетради).
| 0 | 1 | 1 | 1 | 1 | 1 | 1 | 1 | 0 | 1 | 1 | 1 | 1 | 1 | 1 | 1 | 1 | 1 | 1 | 1 | 1 | 1 | 1 | 1 | 1 | 1 | 1 | 1 | 1 | 1 | 1 | 1 |
| Знак и порядок | Знак и мантисса |
Максимальное значение порядка числа составит 11111112=12710, следовательно, максимальное число:
2127= 1,7014118346046923173168730371588×1038
Точность вычислений определяется количеством разрядов, отведенных для хранения мантиссы чисел. Максимальное значение положительной мантиссы равно:
223 – 1 ≈10002,3≈103×2,3≈107.
Таким образом максимальное значение чисел обычной точности составит 1,701411×1038.
Запишем алгоритм представления вещественного числа в памяти компьютера:
Перевести число в двоичную систему счисления
Записать число с n значащими цифрами (количество разрядов отводимое для хранения мантиссы).
Нормализовать представление числа.
Нарисовать к–разрядную сетку.
Записать код знака порядка и мантиссы в старший разряд байтов, отводимых для хранения порядка и мантиссы.
Записать порядок в разрядную сетку, начиная с младшего разряда.
Записать мантиссу в разрядную сетку, начиная с младшего разряда.
Заполнить оставшиеся разряды нулями.
Пример. Представить число 250,1875 в формате с плавающей запятой в четырехбайтной разрядной сетке (учитель записывает на доске, ученики в тетради).
Переведем число 250,1875 в двоичную систему счисления
250,187510 = 11111010, 00112
Запишем число с 23 значащими цифрами.
11111010, 0011000000000002
Нормализовать представление числа.
0, 111110100011000000000002*101000
Нарисовать к–разрядную сетку.
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | |
| Знак и порядок | Знак и мантисса |
Записать код знака порядка и мантиссы в старший разряд байтов, отводимых для хранения порядка и мантиссы.
| 0 | | | | | | | | 0 | | | | | | | | | | | | | | | | | | | | | | | |
| Знак и порядок | Знак и мантисса |
Записать порядок и мантиссу в разрядную сетку, начиная с младшего разряда.
| 0 | | | | 1 | 0 | 0 | 0 | 0 | 1 | 1 | 1 | 1 | 1 | 0 | 1 | 0 | 0 | 0 | 1 | 1 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 |
| Знак и порядок | Знак и мантисса |
Заполнить оставшиеся разряды нулями.
| 0 | 0 | 0 | 0 | 1 | 0 | 0 | 0 | 0 | 1 | 1 | 1 | 1 | 1 | 0 | 1 | 0 | 0 | 0 | 1 | 1 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 |
| Знак и порядок | Знак и мантисса |
4. Первичное закрепление
№1. Записать в каком формате и в какой форме хранится в памяти компьютера следующие числа (учитель вызывает к доске учеников и помогает им в решении)
1510
| 7 | 6 | 5 | 4 | 3 | 2 | 1 | 0 |
| 0 | 0 | 0 | 0 | 1 | 1 | 1 | 1 |
+30210
| 15 | 14 | 13 | 12 | 11 | 10 | 9 | 8 | 7 | 6 | 5 | 4 | 3 | 2 | 1 | 0 |
| 0 | 0 | 0 | 0 | 0 | 0 | 0 | 1 | 0 | 0 | 1 | 0 | 1 | 1 | 1 | 0 |
-17510
Прямой код: 0000000010101111
Обратный код:1111111101010000
Дополнительный код: 1111111101010001
| 15 | 14 | 13 | 12 | 11 | 10 | 9 | 8 | 7 | 6 | 5 | 4 | 3 | 2 | 1 | 0 |
| 1 | 1 | 1 | 1 | 1 | 1 | 1 | 1 | 0 | 1 | 0 | 1 | 0 | 0 | 0 | 1 |
217, 187510
11011001, 00112
11011001,0011000000000002
0,11011001001100000000000×21000
| 0 | 0 | 0 | 0 | 1 | 0 | 0 | 0 | 0 | 1 | 1 | 0 | 1 | 1 | 0 | 0 | 1 | 0 | 0 | 1 | 1 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 |
| Знак и порядок | Знак и мантисса |
46,1562510
101110,001012
101110,001010000000000002
0,10111000101000000000000×2110
| 0 | 0 | 0 | 0 | 0 | 1 | 1 | 0 | 0 | 1 | 0 | 1 | 1 | 1 | 0 | 0 | 0 | 1 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 |
| Знак и порядок | Знак и мантисса |
5. Практическая работа
А сейчас давайте проверим, насколько хорошо вы усвоили тему. На столе лежат три вида карточек с заданиями. На зеленых карточках находятся задания на оценку 3, на серых – на оценку 4, а на желтых – на оценку 5.
Вы можете последовательно выполнить задания на 3, на 4 и на 5, я поставлю вам максимальную оценку. А можете сразу начать с любого уровня сложности.
6. Рефлексия. Подведение итогов
Мы успешно выполнили все задания, а что нового вы узнали сегодня на уроке? (какие форматы представления чисел бывают в компьютере, как представляются числа с плавающей запятой и как выполнять арифметические действия над такими числами)
Какой материал вам показался особенно сложным? Выразите своё мнение на карточках, которые вы получили по пятибалльной системе.
Индивидуальная карточка для оценки результатов.
| Что вы знали о представлении числе в компьютере. | Что вы узнали о представлении числе в компьютере. | Что бы вы хотели узнать или продолжить узнавать. |
| | | |
| Оцените уровень ваших знаний на шкале. |
| |
7. Домашнее задание
Дома прочитать и выучить параграф 2.10.1 и 2.10.2.
Перевести дату своего рождения со занком «+» и «-» в двухбайтную двоичную сетку.
11