_Системы счисления_. "Системы счисления"
Скачать 32.22 Kb.
|
Тема: "Системы счисления" Разделы учебника: [I], § 6, § 43. Дополнительный материал: часть 2, раздел 1.4. Основные цели. Раскрыть понятие системы счисления. Познакомить учеников со способами представления чисел в позиционных системах счисления. Дать представление об использовании двоичной системы в компьютере. Изучаемые вопросы: • Позиционные и непозиционные системы счисления; • Основные понятия позиционных систем: основание, алфавит; • Развернутая форма представления чисел в позиционных системах; • Перевод чисел из одной системы в другую; • Особенности двоичной арифметики; • Связь между двоичной и шестнадцатеричной системами. Методические рекомендации по изложению теоретического материала Тема "Системы счисления" имеет прямое отношение к математической теории чисел. Однако в школьном курсе математики она, как правило, не изучается. Необходимость изучения этой темы в курсе информатики связана с тем фактом, что числа в памяти компьютера представлены в двоичной системе счисления, а для внешнего представления содержимого памяти, адресов памяти используют шестнадцатеричную или восьмеричную систему. Это одна из традиционных тем, которая присутствует в любом варианте курса информатики или программирования. Являясь смежной с математикой, данная тема вносит вклад также и в фундаментальное математическое образование школьников. 1. Ученики 8-го класса, безусловно, знакомы с записью чисел как римскими, так и арабскими цифрами. Они привыкли видеть римские цифры в обозначении глав в книге, в указании столетий (XX век) и в некоторых других нумерациях. Математические расчеты они всегда производили в арабской системе чисел. В данной теме учителю предстоит раскрыть перед учениками эти, казалось бы, знакомые вещи с новой стороны. С методической точки зрения эффективным является прием, когда учитель подводит учеников к самостоятельному, пусть маленькому, открытию. В данном случае желательно, чтобы ученики сами подошли к формулировке различия между позиционным и непозиционным принципом записи чисел. Сделать это можно, отталкиваясь от конкретного примера. Напишите на доске два числа: XXX 333 Первое — римское тридцать, второе — арабское триста тридцать три. И задайте вопрос: "Чем отличается принцип записи многозначных чисел римскими и арабскими цифрами?" Скорее всего вы сразу не услышите того ответа, который хотели бы получить. Тогда, указывая на отдельные цифры римского числа, спрашивайте: "Что (какое количество) обозначает эта цифра?" Получите ответ: "Десять!" — "А эта цифра? — Десять! — А эта? — Десять . — Как получается значение данного трехзначного числа?" — "Десять прибавить десять, прибавить десять, получается тридцать!" А теперь переходим к числу 333. Снова задаем вопросы: "Какое количество в записи числа обозначает первая цифра справа?" — "Три единицы!" — "А вторая цифра?" — "Три десятка!" — "А третья цифра?" — "Три сотни!" — "А как получается общее значение числа?" — "К трем единицам прибавить три десятка и прибавить три сотни, получится триста тридцать три!" Из этого диалога следуют все правила, которые учитель должен сообщить детям. В римском способе записи чисел значение, которое несет каждая цифра в числе, не зависит от позиции этой цифры. В арабском же способе значение, которое несет каждая цифра в записи числа, зависит не только от того, какая это цифра, но и от позиции, которую она занимает в числе. Сделав ударение на слове "позиция", учитель сообщает, что римский способ записи чисел называется непозиционным, а арабский — позиционным. После этого можно ввести термин "система счисления". Система счисления — это определенный способ представления чисел и соответствующие ему правила действия над числами. Римский способ записи чисел является примером непоэиционной системы счисления, а арабский — это позиционная система счисления. Следует подчеркнуть связь между способом записи чисел и приемами арифметических вычислений в соответствующей системе счисления. Предложите ученикам выполнить умножение, например, числа сто тридцать четыре на семьдесят шесть, используя римскую и араб скую системы счислений! С арабскими числами они легко справятся, а также смогут убедиться, что римские цифры — не помощники в вычислениях. В римской системе нет простых и понятных правил выполнения вычислений с многозначными числами. Для арабской системы такие правила известны еще с IX века. В рамках этой темы полезно рассказать ученикам, что правила выполнения вычислений с многозначными числами были разработаны выдающимся математиком средневекового Востока Мухаммедом аль-Хорезми и в Европе были названы алгоритмами (от латинского написания имени аль-Хорезми — Algorithmi). Этот факт следует напомнить позже, при изучении алгоритмизации. Итак, именно позиционные системы счисления стали основой современной математики. Далее, как и в математике, в информатике мы будем иметь дело только с числами в позиционных системах счисления. 2. Теперь нужно дать понять ученикам, что позиционных систем счисления существует множество, и отличаются они друг от друга алфавитом — множеством используемых цифр. Размер алфавита (число цифр) называется основанием системы счисления. Задайте вопрос: "Почему арабская система называется десятичной системой счисления?" Наверняка услышите в ответ про десять цифр в алфавите. Делаем вывод: основание арабской системы счисления равно десяти, поэтому она называется десятичной. Следует выписать алфавиты различных позиционных систем счисления. Системы с основанием не больше 10 используют только арабские цифры. Если же основание больше 10, то в роли цифр выступают латинские буквы в алфавитном порядке. Из таких систем в дальнейшем будет рассматриваться лишь шестнадцатеричная система. Далее нужно научить учеников записывать натуральный ряд чисел в различных позиционных системах. Объяснение следует проводить на примере десятичной системы, для которой вид натурального ряда чисел им хорошо известен: 1 2 3 4 5 6 7 8 9 10 11 ... 19 20 ... 99 100 101 ... Принцип построения ряда такой: сначала в порядке возрастания значений записываются все однозначные числа; первое двузначное число — всегда 10 (у многозначных целых чисел 0 впереди не является значащей цифрой и обычно не пишется). Далее следуют все двузначные сочетания единицы с другими цифрами, затем — двузначные числа, начинающиеся с 2, затем — с 3 и т.д. Самое большое двузначное число — 99. Затем идут трехзначные числа, начиная от 100 до 999 и т.д. По такому же принципу строится натуральный ряд и в других системах счисления. Например, в четверичной системе (с основанием 4): 1 2 3 10 11 12 13 20 21 22 23 30 31 32 33 100 101 102 103 110 111 ... 333 1000 ... Аналогично и для других систем. Наибольший интерес представляет натуральный ряд двоичных чисел. Вот как он выглядит: 1 10 11 100 101 110 111 1000 1001 1010 1011 1100 1101 1110 1111 10000 и т.д. Следует обратить внимание учеников на быстрый рост числа цифр при использовании двоичной системы. Для указания на основание системы, к которой относится число, вводим индексное обозначение. Например, 36g указывает на то, что это число записано в восьмеричной системе счисления, 1А616 — шестнадцатеричное число, 10112 — число в двоичной системе. Индекс всегда записывается десятичным числом. Следует подчеркнуть, что в любой системе счисления ее основание записывается как 10. Еще одно важное замечание: ни в коем случае нельзя называть недесятичные числа так же, как десятичные. Например, нельзя называть восьмеричное число 368 как тридцать шесть'. Надо говорить: "Три-шесть". Или нельзя читать 1012 как "сто один". Надо говорить: "Один-ноль-один". Следует также понимать, что, например, 0,12 — это не одна десятая, а одна вторая, или 0,l8 — это одна восьмая и т.п. • 3. Сущность позиционного представления чисел отражается в развернутой форме записи чисел. Снова для объяснения привлекаем десятичную систему. Например: 5319,12 = 5000 + 300 + 10 + 9 + 0.1 + 0,02 = 5 • 105 + 3 • 102 + 1 • 10' + 9 + + 1- 10-' + 2- 10-2. Последнее выражение и называется развернутой формой записи числа. Слагаемые в этом выражении являются произведениями значащих цифр числа на степени десятки (основания системы счисления), зависящие от позиции цифры в числе — разряда. Цифры в целой части умножаются на положительные степени 10, а цифры в дробной части — на отрицательные степени. Показатель степени является номером соответствующего разряда. Аналогично можно получить развернутую форму чисел в других системах счисления. Например, для восьмеричного числа: 17538= 1 • 103 + 7 • 102 + 5 • 10' + 3. Здесь 108 = 810,. Целесообразно привести развернутую форму записи в виде 1753, = 1 • 8» + 7 • 82 + 5 • 8' + 3. 4. Следующий вопрос, изучаемый в этом разделе, — способы перевода чисел из одной системы в другую. Основная идея заключается в следующем: перевод чисел неизбежно связан с выполнением вычислений. Поскольку нам хорошо знакома лишь десятичная арифметика, то любой перевод следует свести к выполнению вычислений над десятичными числами. Объяснение способов перевода следует начать с перевода десятичных чисел в другие системы счисления. Делается это просто: нужно перейти к записи развернутой формы числа в десятичной системе. Вот пример такого перехода для приведенного выше восьмеричного числа: 17538= (1 • 103 + 7 • 102 + 5 • 10' + 3)8 = = (l•85+ 7•82+5• 8' + 3)10 Теперь нужно вычислить полученное выражение по правилам десятичной арифметики и получить окончательный результат: 17538 = (192 + 448 + 40 + 3)10 = 68310. Чаще всего развернутую форму числа сразу записывают в десятичной системе. Вот еще пример с двоичным числом: 101101,12 = (1 • 25 + 0. 24 + 1 • 23 + 1 • 22 + 0. 21+ 1 + 1.. 2-1= 32 + 8 + 4 + 1 + 1/2 = 45.510. Для вычисления значения числа по его развернутой форме записи существует удобный прием, который называется вычислительной схемой Горнера. Суть его состоит в том, что развернутая запись числа преобразуется в эквивалентную форму с вложенными скобками. Например, для рассмотренного выше восьмеричного числа это выглядит так: 17538= (1 • 83 + 7 • 82 + 5 • 81 + 3)10 = ((1. 8 + 7).8 + 5).8 + 3. Нетрудно понять, что если раскрыть скобки, то получится то же самое выражение. В чем же удобство скобочной структуры? А в том, что ее вычисление производится путем выполнения последовательной цепочки операций умножения и сложения в порядке их записи слева направо. Для этого можно использовать самый простой калькулятор (без памяти), поскольку не требуется сохранять промежуточные результаты. Схема Горнера сводит вычисление таких выражений к минимальному числу операций. Перевод десятичных чисел в другие системы счисления — задача более сложная. В принципе все происходит через ту же самую развернутую форму записи числа. Только теперь нужно суметь десятичное число разложить в сумму по степеням нового основания п= 10. Например, число 8510 по степеням двойки раскладывается так: 8510 = 1 • 26 + 0 • 25 + 1 • 24 + 0 • 23 + 1 • 22 + 0. 2+1 = 10101012. Однако проделать это в уме довольно сложно. В § 6 описывается формальная процедура такого перевода, а в разделе 1.4 второй части учебника дается математическое обоснование этой процедуре. Разбор этого обоснования требует от учеников определенного уровня математической грамотности и возможен в варианте углубленного изучения базового курса. Приемы перевода дробных десятичных чисел в другие системы счисления изложены в разделе 1.4. В рамках минимального объема базового курса этот вопрос изучать не обязательно. Здесь нужно обратить внимание на следующее обстоятельство: десятичные дроби с конечным числом цифр при переводе в другие системы могут превратиться в бесконечные (периодические) дроби. Если удается найти период, тогда его следует выделить. Если для школьников выделять период трудно, то нужно договориться о точности (т.е. о количестве цифр), с которой производится перевод. Если ставится цель получения при переводе дробного числа наиболее близкого значения, то, ограничивая число знаков, нужно производить округления. Для этого в процессе перевода следует вычислять на одну цифру больше, а затем, применяя правила округления, сокращать эту цифру. Выполняя округление, нужно соблюдать следующее правило: если первая отбрасываемая цифра больше или равна п/2 (n — основание системы), то к сохраняемому младшему разряду числа прибавляется единица. Например, округление восьмеричного числа 32,324718 до одного знака после запятой даст в результате 32,3, а округление до двух знаков после запятой — 32,33. 5. Применение двоичной системы счисления в ЭВМ может рассматриваться в двух аспектах: 1) двоичная нумерация, 2) двоичная арифметика, — т.е. выполнение арифметических вычислений над двоичными числами. С двоичной нумерацией ученики встретятся в § 13 "Тексты в компьютерной памяти". Рассказывая о таблице кодировки ASCII, учитель должен сообщить ученикам, что внутренний двоичный код символа — это его порядковый номер в двоичной системе счисления. О двоичной нумерации можно говорить и при изучении § 18 "Как кодируется изображение". Коды цветов восьмицветной палитры (табл. 4.1') и шестнадцатицветной палитры (табл. 4.2) можно перевести в их десятичные номера. Такая система нумерации цветов используется в компьютерной графике. Например, красный цвет имеет номер 4 (двоичный код 100); коричневый — номер 6 (код 110); ярко-розовый — номер 13 (код 1101). Практическая потребность знакомства с двоичной арифметикой возникает при изучении главы 11 "Как работает компьютер". В этом разделе рассказывается, как процессор ЭВМ выполняет арифметические вычисления. В современных компьютерах процессор производит вычисления в двоичной системе счисления. В рамках базового курса достаточно ограничиться рассмотрением вычислений с целыми двоичными числами. Для выполнения вычислений с многозначными числами необходимо знать правила сложения и умножения однозначных чисел. 0 + 0 = 0 0 . 0 = 0 1 + 0 = 1 1 . 0 = 0 1 + 1 = 1 1 . 1 = 1 Принцип перестановочности сложения и умножения работает во всех системах счисления. Далее следует сообщить, что приемы выполнения вычислений с многозначными числами в двоичной системе аналогичны десятичной. Иначе говоря, процедуры сложения,, вычитания и умножения "столбиком" и деления "уголком" в двоичной системе производятся так же, как и в десятичной. В § 43 приведены примеры сложения и умножения многозначных двоичных чисел. Рассмотрим правила вычитания и деления двоичных чисел. Операция вычитания является обратной по отношению к сложению. Из приведенной выше таблицы сложения следуют правила вычитания: 0-0=0; 1 - 0= 1; 10 — I = 1. А вот пример вычитания многозначных чисел: 1001101101 - 100110111 100110110 Полученный результат можно проверить сложением разности с вычитаемым. Деление — операция, обратная умножению. В любой системе счисления делить на 0 нельзя. Результат деления на 1 равен делимому. Деление двоичного числа на 10^ ведет к перемещению запятой на один разряд влево, подобно десятичному делению на десять. Например: 10010: 10= 1001; 1011 : 10= 101,1; 101100: 10= 10110. Деление на 100 смещает запятую на 2 разряда влево и т.д. В базовом курсе можно не рассматривать сложные примеры деления многозначных двоичных чисел. Хотя способные ученики могут справиться и с ними, поняв общие принципы. В 4-м практическом задании к § 43 (варианты 7 и 8) результаты деления будут следующие: 1010 : 101 = 10; 1110 : 100 = 11,1. 6. Представление информации, хранящейся в компьютерной памяти, в ее истинном двоичном виде весьма громоздко из-за большого количества цифр (имеется в виду запись такой информации на бумаге или вывод ее на экран). Для уменьшения количества цифр принято использовать восьмеричную или шестнадцатеричную систему счисления. В § 43 рассматривается только шестнадцатеричная система. В современных программных средствах чаще всего используется именно эта система. Существует простая связь между двоичным и шестнадцатеричным представлением числа: одной шестнадцатеричной цифре соответствует четырехразрядный двоичный код. Это соответствие отражено в двоично-шестнадцатеричной таблице (табл. 11.3), приведенной в учебнике. Такая связь основана на том, что 16 = 24 и число различных 4-разрядных комбинаций из цифр 0 и 1 равно 16: от 0000 до 1111. Поэтому перевод чисел из "16" в "2" и обратно производится путем формальной перекодировки. Принято считать, что если дано шестнадцатеричное представление внутренней информации, то это равносильно наличию двоичного представления. Преимущество шестнадцатеричного представления состоит 6 том, что оно в 4 раза короче двоичного. Желательно, чтобы ученики запомнили двоично-шестнадцатеричную таблицу. Тогда действительно для них шестнадцатеричное представление станет эквивалентным двоичному. В шестнадцатеричном виде записываются адреса оперативной памяти компьютера. Например, для учебного компьютера "Нейман", который описывается в главе 11, диапазон адресации байтов памяти от 00 до FF, в десятичной системе — от 0 до 255. Рассматривая структуру памяти компьютера, принципы адресации байтов памяти, можно обсудить с учениками следующий вопрос: как связан диапазон адресов с разрядностью адреса. В учебном компьютере "Нейман" адреса памяти представляются 8-разрядными двоичными числами (2-разрядными шестнадцатеричными). Поэтому число различных адресов равно 28, а диапазон значений — от 0 до 28 — 1 = 255 (FF16).Если адрес 16-разрядный, что часто имеет место для реальных ЭВМ, то размер адресуемой памяти равен 216 байтам = 26 Кбайтам = 64 Кбайтам. Диапазон шестнадцатеричных адресов в таком случае: от 0000 до FFPF. В современных компьютерах существуют приемы, позволяющие адресовать гораздо большие размеры памяти без увеличения разрядности адреса. Для этого используется многоуровневая структура организации памяти. Данный вопрос выходит за рамки содержания базового курса. Однако тема "Адресация памяти в современных ЭВМ" может быть предметом реферативной работы учащихся. Материал можно найти в специальной литературе, посвященной архитектуре современных ЭВМ. Методические рекомендации к решению задач Задачи на системы счисления содержатся в разделе 1.5 задачника-практикума [2]. Первые 7 задач относятся к непозиционным системам счисления. Во всех случаях предполагается справедливость принципа, используемого в римской системе записи чисел: если меньшая цифра записана после большей по величине цифры, то ее значение прибавляется к общему значению числа, если меньшая цифра предшествует большей, то ее значение вычитается. Например: XVI = 10.+ 5 + 1 = 16; XIV = 10 + 5 — 1 = 14. Пример 1. [2], раздел 1.5, задача № 6. В некоторой непозиционной системе счисления цифры обозначаются геометрическими фигурами. На основании данных примеров требуется определить, какую цифру обозначает каждая фигура, и расшифровать данное многозначное число. Учитывая сделанное выше замечание, легко понять, что круг обозначает 1, треугольник углом вверх — 5, квадрат — 10, прямоугольник — 100, треугольник углом вниз — 1000. Тогда значение записанного многозначного числа определится так: 1000 — 100 + 1000 — 10 + 100 + 5 + 1 + 1 = 1997. Задачи № 8—22 требуют от учеников знаний алфавитов позиционных систем, умения представлять числа в развернутой форме, переводить недесятичные числа в десятичную систему счисления. При переводе рекомендуется использовать вычислительную схему Горнера. Пример 2. [2], раздел 1.5, задача № 16. Записать в десятичной системе данные недесятичные числа. 2213= (2 . 3+ 2) . 3+ 1 = 2510 E41A,1216= ((14 . 16 + 4) . 16 + 1) . 16 + 10 + (2/16 + 1)/16 = 58394 + 0,0703125 = = 58394,070312510 Обратите внимание на то, что дробная часть числа переводится отдельно, и на то, как применение схемы Горнера модифицируется для дробной части: умножение заменяется на деление, а значащие цифры подставляются в обратном порядке — справа налево. Задачи № 23— 32 на перевод десятичных чисел в другие системы счисления не должны вызвать принципиальных затруднений. Однако практика работы в школе показывает, что нередко возникает парадоксальная проблема: многие ученики не умеют выполнять деление многозначных чисел без калькулятора. В этих же заданиях делить приходится вручную, поскольку нужно выделять остатки, чего обычно не делают калькуляторы. Иногда затруднения вызывает и перемножение многозначных чисел при переводе дробей, особенно в шестнадцатеричную систему. В таком случае невредно восстановить навыки ручных вычислений, напрочь забытые многими учениками со времен младшей школы. Задайте детям вопрос: "Кто умнее — человек или калькулятор?" Пусть это стимулирует их поднять свой интеллект выше уровня пластмассовой коробочки. В задачах № 33—45 используется связь между системами с основанием 2". Требуется умение производить переводы между числами в системах с основанием 2, 8, 16. Как отмечалось выше, такой перевод происходит путем формального перекодирования с помощью двоично-шестнадцатеричного или двоично-восьмеричного кода. Таблицы такой перекодировки приведены в задачнике. Пример 3. [2], раздел 1.5, № 38. Перевести шестнадцатеричные числа в восьмеричную систему. Конечно, такой перевод можно производить и через десятичную систему по схеме 16 => 10 ==> 8. Но это долго и неудобно. Лучше выполнять такой перевод по схеме 16 => 2 =» 8. В этом случае ничего не требуется вычислять, все сводится к формальной перекодировке. На втором шаге следует сгруппировать двоичные цифры тройками. 77416= 0111 0111 01002 011 101 110100= 35648 F12,0457=16 111100010010,00000100010101112 => 111 100 010 010, 000 001 000 101 011 100 = = 7422,0105348. В задачах № 46—62 от учеников требуется умение выполнять арифметические вычисления в различных позиционных системах счисления. Следует обратить внимание учеников на то, что в основе таких вычислений лежат правила сложения и умножения однозначных чисел, а вычислительные алгоритмы везде одинаковы. Наибольшую сложность могут представить задачи с определением неизвестных цифр. |