9 класс. Тема урока. Числа в памяти компьютера. Цели урока: I. Формирование предметной компетенции: 1. Познавательные: o дать представление о положительных и отрицательных числах в памяти компьютера; o повторить понятия «система счисления», определение «бит»; o повторить правила перевода чисел из двоичной СС в десятичную и наоборот. 2. Практические: o учить работать с калькулятором; o учить с помощью алгоритма получать внутреннее представление отрицательных чисел; o учить получать число по его компьютерному коду. II. Формирование метапредметных компетенций: 1. Деятельностные компетенции (развивающие цели): o развивать внимание, логическое мышление, умение сопоставлять и делать выводы. 2. Социальные компетенции: o работать в команде, слушать и слышать учителя и одноклассников, адекватно реагировать на ошибки, принимать решения. Тип урока - комбинированный урок. План урока: 1. Постановка проблемы – вычисления с помощью приложения Калькулятор. 2. Целеполагание. 3. Работа с алгоритмами. 4. Практические задания на закрепление нового материала. Все вы знаете приложение Калькулятор и умеете им пользоваться. Сейчас я проведу несколько вычислений, ваша задача объяснить полученные результаты. Вид калькулятора – Программист. Определение (в тетрадь) Часть памяти, в которой хранится число, называется ячейкой памяти. Для наших вычислений выберем минимальный размер ячейки – 1 байт. Вычисляем 120+8 = -128 Откуда появился знак «-»? Следующий пример -125-5 = 126? Чем можно объяснить полученные результаты? Идет обсуждение предположений. Подсказка. Попробуем набрать число 130, не получается… Какое наибольшее и наименьшее число можно ввести? 127 и -128. Всего 256 чисел, а 256=28 Делаем вывод: диапазон представимых чисел зависит от размера ячейки памяти. Возьмем несколько положительных чисел и запишем в тетрадь их компьютерные коды. Результат проверим с помощью Калькулятора. 27 128 15= 0 25= 0 45= 0 55= 0 75= 0 120= 0 26 64 0 0 0 0 1 1 25 32 0 0 1 1 0 1 24 16 0 1 0 1 0 1 23 8 1 1 1 0 1 1 22 4 1 0 1 1 0 0 21 2 1 0 0 1 1 0 20 1 1 1 1 1 1 0 Теперь введем противоположные числа и запишем их коды Число 15 25 45 55 75 120 Код Число Код 00001111 -15 11110001 00011001 -25 11100111 00101101 -45 11010011 00110111 -55 11001001 01001011 -75 10110101 01111000 -120 10001000 Что общего у всех кодов положительных чисел? а у отрицательных? Действительно – первый бит в записи кода указывает на знак числа: 1 – число отрицательное, 0 – число положительное. Итак получить компьютерный код положительного числа довольно просто: 1. Проверить, представимо ли данное число в указанной ячейке. Размер ячейки 1 байт 2 байта 4 байта Диапазон представимых чисел [-128;127] [-32 768;32 767] [-2 147 483 648; 2 147 483 647] 2. Перевести число из 10-ной СС в двоичную. 3. Дописать слева нужное количество нулей (до 8-ми знаков). Как же компьютер получает код и хранит отрицательные числа? Сравнивая коды противоположных чисел можно заметить, что простая замена первой цифры не приведет к нужному результату. Дело в том, что для хранения отрицательных чисел используется дополнительный код. Перестроим нашу таблицу так, чтобы коды противоположных чисел оказались друг под другом. Число Код Число Код 15 00001111 -15 11110001 11110001 25 00011001 -25 11100111 11100111 45 00101101 -45 11010011 11010011 55 00110111 -55 11001001 11001001 75 01001011 -75 10110101 10110101 120 01111000 -120 10001000 10001000 Становится очевидно, что код отрицательного числа получается из кода положительного (противоположного данному) путем замены 0 на 1 и 1 на 0 (по крайней мере, все цифры, кроме последней). Эта операция называется инверсия. На самом деле инверсии подвергаются все цифры без исключения. Только потом к результату инверсии необходимо прибавить 1. Итак, мы получили алгоритм нахождения компьютерного кода отрицательного числа, алгоритм нахождения дополнительного кода. 1. Получить прямой код (для положительного числа, противоположного заданному). Обратить внимание на количество цифр – оно должно быть равно размеру ячейки памяти. 2. Инвертировать прямой код. 3. Прибавить к результату инверсии 1. 4. Полученный результат и есть дополнительный код. Проверим на калькуляторе. Решим обратную задачу. Дан компьютерный код числа. Получить само число. а) 01100010 б) 00111110 в) 01010100 г) 11001111 д) 10010010 е) 11110011 а), б) и в) – числа положительные, переведем их из 2-ной СС в 10-ную. 011000102=64+32+2=9810 001111102=32+16+8+4+2=6210 010101002=64+16++4=8410 27 26 25 24 23 22 21 20 128 64 32 16 8 4 2 1 г),д),е) – числа отрицательные, это дополнительный код, прежде, чем переводить коды из 2-ной в 10-ную СС, проведем инверсию и +1 г) 11001111 – дополнительный код 00110000 – инверсия дополнительного кода 00110000+1=00110001 001100012=32+16+1=4910 Так как изначально мы имели дело с дополнительным кодом, то Ответ: -49 Аналогично пункты д) и е) (самостоятельно с проверкой на доске) Итог урока: Что такое ячейка памяти? Какой минимальный размер у ячейки памяти? Как называется компьютерное представление целого положительного числа? Как получить прямой код? Что такое дополнительный код? Как получить дополнительный код числа? На что указывает первая цифра в записи компьютерного кода числа? Как получить число по его компьютерному коду? а) положительное б) отрицательное