Системы счисления
(Статья "Системы счисления. Методика преподавания темы на уроках в 8–11-х классах с углубленным изучением информатики для подготовки к ГИА" и презентация к ней - лауреаты конкурса презентаций к уроку, опубликованы на сайте "1 Сентября. Открытый урок" 15.10.2019г.) Есть вопросы - пишите !
Система счисления или нумерация – это способ записи (обозначения) чисел.
Возьмем это за основу работы с разными системами счисления, поскольку только способ записи у них будет разный, а все закономерности одинаковые. Поэтому в случае возникновения трудностей в понимании темы обращаемся к десятичной системе счисления и переносим аналог на остальные.
Символы, при помощи которых записываются числа, называются цифрами, а их совокупность – алфавитом системы счисления. Количество цифр, составляющих алфавит, называется основанием (размерностью) системы счисления.
Число в любой системе счисления состоит из цифр, входящих в алфавит этой системы, при этом цифра всегда занимает одну позицию числа.
Основание алфавита указывается в виде индекса числа, записанного в десятичной системе счисления, например: 10112, 1528, 1А716.
Индекс десятичной системы счисления обычно не указывается, так как она принята всеми к использованию по умолчанию.
Обратим внимание, что
В системе счисления, которой мы пользуемся в повседневной жизни – 10 цифр (от 0 до 9), и поэтому такая система счисления называется десятичной.
Аналогично, если в системе счисления будет две цифры (0 и 1), то она называется двоичной, восемь цифр (от 0 до 7) – восьмеричной и т.д.
Основание системы счисления обозначается индексом рядом с числом, например: 1028, 1012 и т.д. При этом основание десятичной системы счисления можно не указывать (будем использовать то, что всем нам привычно - "по умолчанию").
Системы счисления бывают двух видов - позиционные и непозиционные.
Система счисления называется позиционной, если количественный эквивалент цифры зависит от ее разряда – позиции в записи числа.
Например, запишем одинаковыми цифрами несколько разных чисел:
1234 = 1 тысяча + 2 сотни + 3 десятка + 1 единица
3124 = 3 тысячи + 1 сотня + 2 десятка + 4 единицы
4321 = 4 тысячи + 3 сотни + 2 десятка +1 единица.
Как и в привычной нам десятичной, так и в любой другой позиционной системе счисления значение числа образуется суммой результатов умножения цифр на «веса» (степени основания) соответствующих разрядов.
Например,
3948 = 3*1000+9*100+4*10+8*1 = 3*103+9*102+4*101+8*100
10112 = 1*23+0*22+1*21+1*20 или 10112 = 1*20+1*21+0*22+1*23
(далее я буду пользоваться последней приведенной в примере формой записи, чтобы не делать лишних действий и не нумеровать степени двойки слева направо для их правильного использования).
При этом форма записи числа в виде 3948 называется свернутой, а в виде 3*103+9*102+4*101+8*100 - развернутой формой записи числа.
Примером непозиционных систем могут служить древнеегипетская, древнеславянская или римская система счисления.
Так в римской системе счисления из двух цифр X - десять и I - один можно составить числа: XI (одиннадцать), IX (девять), XIX (девятнадцать) или другие, но во всех них значения цифр в зависимости от занимаемых позиций не меняются, а значение числа получается разным при смене порядка следования цифр друг за другом.
Будем называть позиционные системы счисления дружественными (родственными), если в основании у них лежит одно и то же число, но в разных степенях. При этом «дружат» они через систему счисления с основанием в первой степени.
Например, двоичная, четверичная, восьмеричная и шестнадцатеричная системы счисления «дружат» через двоичную, т.к. в основании у них лежит число 2, но в разных степенях:
2=21, 4=22, 8=23, 16=24
Будем считать, что десятичная система счисления не дружит ни с какой другой, так как ближайшая к ней система счисления с основанием 102=100 в практических вычислениях нам не встречается.
Правила перевода между различными системами счисления делятся на две группы – между дружественными системами и недружественными.
Перевод между недружественными системами счисления всегда выполняется через десятичную систему следующим образом:
Пример перевода десятичного числа 25 в двоичную систему счисления показан на рис.1.
Собрав частное с остатками справа налево, получаем:
2510 = 110012 и обратно 110012 = 1*20+0*21+0*22+1*23+1*24 = 25
Для быстрого и точного перевода между дружественными (и только между ними!) двоичной, восьмеричной и шестнадцатеричной системами счисления построим таблицу соответствия десятичных, восьмеричных и шестнадцатеричных чисел двоичным, которую мои ученики называют таблицей «дружбы» (рис.2). Левая часть этой таблицы включает цифры восьмеричной системы счисления, а правая дополняет ее для всех цифр шестнадцатеричной системы счисления. Заметим, что так как каждая цифра в любой системе счисления занимает только одну позицию (один разряд числа), то в шестнадцатеричной системе счисления для записи цифр со значением больше 9 (здесь11, 12, …, 15 – это цифры, занимающие при записи в числе две позиции вместо одной!) используют латинские заглавные буквы от A до F.
Данная таблица разделена двойными линиями в местах условного ее деления на дружественные системы счисления (двоичную, четверичную, восьмеричную и шестнадцатеричную).
При этом длина чисел в двоичной системе счисления зависит от степени двойки в основании дружественной системы счисления, т.е. для записи цифр двоичной системы счисления достаточно одного разряда (т.к. 2 = 21), четверичной - два (4 = 22), восьмеричной (8 = 23), а шестнадцатеричной – четыре (16=24).
Именно это позволяет легко осуществлять перевод между дружественными системами счисления, записывая каждую цифру восьмеричного числа соответствующей ему в таблице двоичной цифрой с учетом того, что длина двоичной цифры при этом строго соответствует степени двойки основания исходной системы счисления:
8=23, то меняем одну восьмеричную цифру на три двоичные - триады,
16 = 24, тогда меняем каждую шестнадцатеричную цифру на четыре двоичные - тетрады,
дополняя их при необходимости до нужной длины незначащими нулями слева (добавление нулей справа от исходного числа является результатом умножения числа на 10, 100 и т.д., т.е. изменяет исходное число).
Например, на рис.3 показан перевод чисел 1528 и 15216 в двоичную систему счисления с учетом этого правила.
При этом показано, что первые нули можно не указывать, т.к. они незначащие.
На рис.4 выполнен перевод из восьмеричной системы счисления в шестнадцатеричную и обратно через двоичную систему счисления.
Перегруппировка двоичных разрядов по четыре и по три во второй части выражений выполняется справа налево по количеству разрядов в степени результирующей системы счисления, а дальнейшая запись числа – как обычно, слева направо.
Теперь обратим внимание на несколько закономерностей, которые можно заметить в вышеприведенной таблице «дружбы» и аналогичных ей таблицах других систем счисления, в том числе и десятичной.
Закономерность 1.
N10 = 10N
(210=102 – посмотрите в таблице, 810=108, 1610=1016 и т.д.).
Закономерность 2.
Nk = 10…0N
k
(посмотрите в таблице: 4=22=1002, 8=23 =10002, тогда 16=24=100002).
Закономерность 3.
Nk - 1 = (N-1)…(N-1)N
k
тогда 2k – 1 = 1…12
k
(посмотрите в таблице: 3=22-1=112, 7=23 -1=1112, тогда 15=24-1=11112).
Закономерность 4.
NL-1 ≤ Ch < NL
где Ch – исходное число,
N – основание системы счисления, куда переводим;
L - длина после перевода в систему счисления с основанием N
(например:
22 ≤ 5 < 23, тогда при переводе в двоичную систему счисления длина числа будет
равна 3, посмотрите в таблице: 5=1012;
23 ≤ 13 < 24, тогда при переводе в двоичную систему счисления длина числа будет
равна 4, посмотрите в таблице: 13=10112).
Если закономерности 1, 2 и 3 применяются для быстрого и точного перевода чисел между системами счисления, то закономерность 4 используется для первичной проверки правильности перевода чисел из одной системы счисления в любую другую, что позволяет сэкономить время на проверке результата перевода и дает возможность избежать ошибок.
Но использование закономерностей вместе со знанием таблиц степеней двойки и «дружбы» дает нам еще ряд преимуществ!
Так, помня о нашем принципе быстрых и точных вычислений и в соответствии с закономерностями 2 и 3, рекомендуется выполнять перевод из десятичной системы счисления в двоичную разложением числа на степени двойки следующим образом. Вычитаем из числа степень двойки, которая меньше числа, но максимально приближенную к нему, Затем с остатком проделываем те же действия до тех пор, пока не разложим все число.
Например: 25 = 16 + 8 + 1 = 24 + 23 + 20 (25 – 16 = 9 ; 9 = 8 + 1)
После этого, заменяем присутствующие степени двойки единицами (в соответствии с закономерностью 2), а пропущенные – нулями в порядке следования степеней, получая двоичную запись числа:
25 = 16 + 8 + 1 = 24 + 23 + 20 = 110012
(отсутствующие вторую и первую степени двойки заменяем нулями).
На чем еще можно сэкономить время и избежать ошибок?
Например, для перевода большого двоичного числа в десятичную систему счисления можно использовать в качестве промежуточной восьмеричную или шестнадцатеричную системы счисления, тогда математических операций при переводе будет меньше:
1100111012 = 110 011 1012 = 6358 = 5*80+3*81+6*82 = 5 + 24 + 384 = 413
или
1100111012 = 1 1001 11012 = 19D16 = 13*160+9*161+1*162 = 13 + 144 + 256 = 413
ПРИМЕРЫ РЕШЕНИЯ ЗАДАЧ
Решим несколько задач из ОГЭ по этой теме с использованием изложенных выше закономерностей.
Примечание.Так как любое число в нулевой степени равно единице, то при решении задач можно не писать основание в нулевой степени в разряде единиц.
1. Переведите двоичное число 1110101 в десятичную систему счисления.
Решение: 11101012= 1 110 1012 = 1658 = 5+6*81+1*82 =5+48+64=117
Или: 11101012= 111 01012 = 7516 = 5+7*161=5+112=117
Ответ: 117
2. Переведите двоичное число 1100011 в десятичную систему счисления. В ответе укажите только число, основание системы счисления указывать не нужно.
Решение: 11000112= 110 00112 = 7316 = 3+6*161=3+96=99 ( 1+21+25+26= 3+32+64=99)
Ответ: 99
3. Переведите число 135 из десятичной системы счисления в двоичную систему счисления. Сколько единиц содержит полученное число? В ответе укажите одно число — количество единиц.
Решение: 135 = 128+4+2+1= 27 + 22 + 21 + 20
Никаких лишних действий! Этот ответ получен без окончательного перевода числа в двоичную систему счисления, достаточно посчитать количество двоек в степенях. Это позволило сэкономить время решения задачи и избежать возможных ошибок при дальнейшей записи.
Ответ: 4
4. Переведите число 125 из десятичной системы счисления в двоичную систему счисления. Сколько единиц содержит полученное число? В ответе укажите одно число —количество единиц.
Решение: 125 = 127 – 2 = 11111112 -102 = 11111012
Ответ: 6
5. Переведите число FE из шестнадцатеричной системы счисления в двоичную систему счисления. В ответе укажите только число, основание системы счисления указывать не нужно.
Решение: FE16 = 1111 11102 (используем запись тетрадами из таблицы «дружбы»).
Ответ: 11111110
6. Переведите число 143 из десятичной системы счисления в двоичную систему счисления. Сколько значащих нулей содержит полученное число? В ответе укажите одно число — количество нулей.
Решение: 143 = 128+8+4+2+1 = 27 + 23 + 22 + 21 + 20 , то пропущены всего три (6,5 и 4) степени двойки.
Ответ: 3
7. Переведите число 305 из десятичной системы счисления в двоичную систему счисления. Сколько единиц содержит полученное число? В ответе укажите одно число — количество единиц.
Решение: 305 = 256 + 32 + 16 + 1
(305-256=49, 49 - 32=17=16+1)
( т.к. в сложении участвуют всего 4 степени двойки, то результат будет содержать всего 4
единицы. Степени можно даже не писать)
Ответ: 4
С вопросами, замечаниями или предложениями по теме обращайтесь ко мне на сайте звездина.рус через форму обратной связи, в группе сайта Вконтакте или пишите на электронную почту v_zvezdina@mail.ru.
© 2018–2024 Звездина Вера Алексеевна, v_zvezdina@mail.ru