На уроках информатики мы никогда ничего не зубрим! Ученики должны понимать все, о чем говорится на уроках, и запоминать новое путем повторений пройденного, сравнений и ассоциаций с уже знакомыми темами и понятной информацией.
Для максимально быстрого и однозначно верного решения задач мы придерживаемся принципа: чем меньше вычислений и другой работы мы делаем, тем меньше времени тратиться на решение задачи и тем меньшую вероятность появления ошибок получаем в результате. При этом, соглашаясь с Аристотелем, что «Ум заключается не только в знании, но и в умении прилагать знания на деле», я настаиваю на способах решений, соответствующих этому принципу, хотя существуют и другие варианты. На своих уроках я придерживаюсь изложения темы именно в этом ключе. Сначала это бывает сложно, особенно тем, кто приходит ко мне на уроки уже знакомым с иначе излагаемым материалом и не желающим переучиваться. Но хочу научить Вас решать быстро и без ошибок, экономя время и силы для новых задач. Поверьте, этому несложно научиться, нужно только поверить в свои силы - и все получится! При этом проверочные работы и тесты проводятся мной на время с расчетом решения задач именно по такому принципу.
При изучении этой темы обращаю особое внимание на таблицу степеней двойки и на ряд закономерностей. При этомзнание таблицы является необходимым и достаточным условием для максимально быстрого и однозначно точного решения, а дополнительное знание закономерностей позволит выполнить все еще быстрее и точнее.
Ниже приведена таблица степеней двойки, где n – это степень, а 2n – результат возведения числа 2 в степень n:
n | 0 |
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
2n |
1 |
2 |
4 |
8 |
16 |
32 |
64 |
128 |
256 |
512 |
1024 |
2048 |
4096 |
Таблицу не обязательно заранее учить наизусть. Постарайтесь при решении задач пользоваться ею, но при этом заглядывать в нее все реже и реже, пытаясь сначала вспомнить значение степени. Тогда эта таблица сама «уляжется» в Вашей голове и очень поможет Вам на экзамене в этой и в других темах!
Теперь перейдем к теории рассматриваемой темы.
Система счисления или нумерация – это способ записи (обозначения) чисел.
Возьмем это за основу работы с разными системами счисления, поскольку только способ записи у них будет разный, а все закономерности одинаковые. Поэтому в случае возникновения трудностей в понимании темы обращаемся к десятичной системе счисления и переносим аналог на остальные.
Символы, при помощи которых записываются числа, называются цифрами, а их совокупность – алфавитом системы счисления. Количество цифр, составляющих алфавит, называется основанием (размерностью) системы счисления. Число в любой системе счисления состоит из цифр, входящих в алфавит этой системы.
В системе счисления, которой мы пользуемся в повседневной жизни – 10 цифр (от 0 до 9), и поэтому такая система счисления называется десятичной.
Аналогично, если в системе счисления будет две цифры (0 и 1), то она называется двоичной, восемь цифр (от 0 до 7) – восьмеричной и т.д.
Основание алфавита указывается в виде индекса числа, записанного в десятичной системе счисления, например: 10112, 1528, 1А716.
При этом основание десятичной системы счисления можно не указывать (будем использовать то, что всем нам привычно - "по умолчанию").
Обратим внимание, что
- наименьшей цифрой в алфавите любой системе счисления является ноль, а наибольшая цифра всегда на единицу меньше основания
Системы счисления бывают двух видов - позиционные и непозиционные.
Система счисления называется позиционной, если количественный эквивалент цифры зависит от ее положения (позиции) в записи числа.
Например, запишем одинаковыми цифрами несколько разных чисел:
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
Будем считать, что десятичная система счисления не дружит ни с какой другой, так как ближайшая к ней система счисления с основанием 100 в практических вычислениях нам не встречается.
Правила перевода между различными системами счисления делятся на две группы – перевод между дружественными и недружественными системами.
Перевод между недружественными системами счисления всегда выполняется через десятичную систему следующим образом:
- из десятичной системы счисления в любую – делением исходного числа на основание системы счисления, в которую переводим; при этом остатки от деления и последнее частное должны быть меньше этого основания. Частное и остатки от деления собираются справа налево.
- из любой системы счисления в десятичную - умножением цифр на «веса» (степени основания) соответствующих разрядов и все полученные значения складываются.
Например, переведем десятичное число 25 в двоичную систему счисления (рис.1):
Тогда 2510 = 110012
и обратно 110012 = 1*20+0*21+0*22+1*23+1*24
2510 = 2213
и обратно 2213 = 1*30+2*31+2*32
2510 = 416 и обратно 416 = 1*60+4*61
Для быстрого и точного перевода между дружественными (причем только между ними!) двоичной, восьмеричной и шестнадцатеричной системами счисления построим таблицу соответствия десятичных, восьмеричных и шестнадцатеричных чисел двоичным, и назовем эту таблицу таблицей «дружбы» (рис.2). Левая часть этой таблицы включает цифры восьмеричной системы счисления, а правая дополняет ее для всех цифр шестнадцатеричной системы счисления.
Рис. 2
Заметим, что так как каждая цифра в любой системе счисления занимает только одну позицию (один разряд числа), то в шестнадцатеричной системе счисления для записи цифр со значением больше 9 (10, 11 и т.д. здесь – это цифры!) используют латинские заглавные буквы от A до F .
Данная таблица разделена двойными линиями в местах условного ее разделения на дружественные системы счисления (двоичную, четверичную, восьмеричную и шестнадцатеричную).
Обратите внимание, что длина чисел в двоичной системе счисления зависит от степени двойки в основании дружественной системы счисления:
- т.к. 8=23, то при переводе из восьмеричной системы счисления в двоичную мы записываем каждое двоичное число тремя разрядами (триадами);
- т.к. 16=24, то при переводе из восьмеричной системы счисления в двоичную мы записываем каждое двоичное число четырьмя разрядами (тетрадами);
Именно это позволяет легко осуществлять перевод между дружественными системами счисления, записывая каждую цифру исходного числа соответствующей ему в таблице двоичной цифрой с учетом того, чтобы длина двоичной цифры при этом строго соответствовала степени двойки основания исходной системы счисления:
- 8=23, то меняем одну восьмеричную цифру на три двоичные - триады,
- 16 = 24, тогда меняем каждую шестнадцатеричную цифру на четыре двоичные - тетрады,
дополняя их при необходимости до нужной длины незначащими нулями слева (добавление нулей справа от исходного числа является результатом умножения числа на 10, 100 и т.д., т.е. изменяет исходное число).
Например,
1528 = 001 101 0102 = 1 101 0102
(при этом первые два нуля не указываются, т.к. они незначащие), а
15216 = 0001 0101 00102 = 1 0101 00102
(при этом первые три нуля также не указываются).
Выполним перевод из восьмеричной системы счисления в шестнадцатеричную и обратно через двоичную систему счисления.
Перегруппировка двоичных разрядов по четыре и по три во второй части выражений выполняется справа налево по количеству разрядов в степени результирующей системы счисления, а дальнейшая запись числа – как обычно, слева направо.
Например,
1528 = 1 101 0102 = 110 10102 = 6А16
15216 = 1 0101 00102 = 101 010 0102 = 5228
Теперь обратим внимание еще на несколько закономерностей, которые можно заметить в вышеприведенной таблице «дружбы» и аналогичных ей таблицах других систем счисления, в том числе и десятичной.
Закономерность № 1
- Любое основание в своей системе счисления выглядит как 10, т.е.
N10 = 10n
(210=102 – посмотрите в таблице, 810=108, 1610=1016 и т.д.).
Закономерность № 2.
- Степень любого основания в своей системе счисления выглядит как единица и количество нулей, равных степени, т.е.
(посмотрите в таблице: 4=22=1002, 8=23 =10002, тогда 16=24=100002).
Закономерность № 3.
- Число, стоящее перед k-й степенью основания, в своей системе счисления выглядит как последовательность из k самых больших цифр этой системы счисления, т.е.
(посмотрите в таблице: 3=22 – 1=112, 7=23 - 1=1112, тогда 15=24-1=11112).
Закономерность № 4.
- Длина числа при переводе десятичного числа в любую систему счисления легко определяется по формуле:
где Ch – исходное число,
L - длина после перевода в систему счисления с основанием N.
(например: 22 ≤ 5 < 23, тогда при переводе в двоичную систему счисления длина числа будет равна 3, посмотрите в таблице: 5=1012;
23 ≤ 13 < 24, тогда при переводе в двоичную систему счисления длина числа будет равна 3, посмотрите в таблице: 13=10112).
Если закономерности 1, 2 и 3 применяются для быстрого и точного перевода чисел между системами счисления, то закономерность 4 удобно использовать для первичной проверки правильности перевода чисел из десятичной системы счисления в любую другую, что позволит сэкономить время на проверке результата перевода и даст возможность избежать ошибок).
Но использование закономерностей дает нам еще ряд преимуществ!
Так, помня о нашем принципе быстрых и точных вычислений и в соответствии с закономерностями 1 и 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
Ответ: 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
8. Вычислите: 101010102 – 2528 + 716. Ответ запишите в десятичной системе счисления.
Решение: Для решения задач такого типа нужно сначала перевести все числа в одну систему счисления, а уже потом выполнять действия между ними.
Переведем первое число в восьмеричную систему счисления:
101010102 = 2528
Тогда получаем выражение: 2528 – 2528 + 716 = 716 = 710
Ответ: 7
9. Вычислите значение выражения B916 − 2718. В ответе запишите вычисленное значение в десятичной системе счисления.
Решение: Переведем первое число в восьмеричную систему счисления:
В916 = 1011 10012 = 10 111 0012 = 2718. Тогда 2718 - 2718 = 0.
Ответ: 0
10. Вычислите значение выражения EB16 − 3528. Ответ запишите в десятичной системе счисления.
Решение: Переведем первое число в восьмеричную систему счисления:
EB16= 111010112= 3528
Тогда разница между двумя исходными числами равна 1.
Ответ: 1
11. Укажите наименьшее четырёхзначное восьмеричное число, двоичная запись которого содержит 5 единиц. В ответе запишите только само восьмеричное число, основание системы счисления указывать не нужно.
Решение: Наименьшее двоичное число, содержащее 5 единиц, равно 111112.
Но чтобы восьмеричное число было четырехзначным нужно, чтобы оно состояло из 4 триад (из 12 цифр). При этом первой цифрой двоичного числа обязательно должна быть 1 (два незначащих нуля в начале можно не писать), а остальные единицы будут занимать последние разряды числа. Тогда получаем:
001 000 001 1112 = 10178
Ответ: 1017
12. Найдите значение выражения 1116 + 118 : 112. Ответ запишите в двоичной системе счисления.
Решение: В таких задачах, где нужно выполнять быстро и без ошибок вычисления в различных системах счисления, а результат требуется получить в десятичной, то и решение быстрее и проще выполнить в десятичной системе счисления. Поэтому переводим туда все исходные числа и считаем:
1116 = 16+1 = 17
118 = 8+1 = 9
112 = 2+1 = 3
Тогда 17 + 9 : 3 = 20
20 = 16 + 4 = 24 + 22 = 101002
Ответ: 10100
13. Даны 4 целых числа, записанные в двоичной системе:
10001011, 10111000, 10011011, 10110100.
Сколько среди них чисел, больших, чем A416+208?
Решение: Для выполнения действий над числами, представленными в разных системах счисления, нужно сначала перевести их в наиболее удобную для вас систему счисления, и только потом решать задачу. Для меня наиболее удобной является восьмеричная система счисления:
100010112 = 2138, 101110002 = 5608, 100110112 = 2338, 101101002 = 2468
A416 = 101001002 = 2448, и 2448+208=2648.
Тогда из предложенных чисел подходит только второе число.
Ответ: 1
14. Запись числа 6910 в системе счисления с основанием N оканчивается на 1 и содержит 4 цифры. Чему равно основание этой системы счисления N?
Решение: Для решения этой задачи используем две закономерности.
Во-первых, последней цифрой числа при переводе из одной системы счисления в другую всегда является первый остаток от деления числа на основание системы счисления, куда переводим. Тогда искомое основание N должно быть кратно 68 (69=х*N+1, то х*N=68): 2, 4, 7 и т.д. Во-вторых, по закономерности 4, получаем N3 ≤ 69 < N4.
Тогда при выполнении этих условий искомое число N будет равно 4.
Ответ: 4
15. В системе счисления с основанием N запись числа 4110 оканчивается на 2, а запись числа 13110 — на 1. Чему равно число N?
Решение: Т.к. в остатках чисел у нас есть цифры 2 и 1, то N ≤3. При этом N нужно найти число, кратное числам 39 и 130. Следовательно, N = 13.
Ответ: 13
16. В какой системе счисления выполняется равенство 12 · 13 = 211? В ответе укажите число – основание системы счисления.
Решение: При переводе числа 211N в десятичную систему счисления получаем уравнение:
211N = 2*N3 + 1*N +1
Для перевода множителей 12 и 13 в десятичную систему счисления вспомним закономерность 1. Тогда 12N = N+2, 13N = N+3.
Следовательно, получаем уравнение:
(N+2)(N+3) = 2*N2 + N +1
Корнями данного уравнения являются 5 и -1. Но т.к. основание системы счисления является натуральным числом, то N = 5.
Ответ: 5
17. Укажите наименьшее основание системы счисления, в которой запись числа 50 трехзначна.
Решение: По закономерности 4 получаем N2 ≤ 50 < N3.
Следовательно, нам нужно найти наименьшее число, куб которого больше 50.
Ответ: 4