Лекция 3
Системы счисления (СС).
СС – совокупность приёмов и правил для записи чисел цифровыми знаками, символами. СС должны обеспечивать возможность представления любого числа в рассматриваемом диапазоне, единственность представления.
СС:
1. позиционные (значение цифры зависит от позиции в записи, место – разряд, кол-во цифр – разрядность; каждому разряду соответствует степень основания)
2. непозиционные
Двоичная система счисления. В настоящий момент – наиболее употребительная в информатике, вычислительной технике и смежных отраслях система счисления. Использует две цифры – 0 и 1, а также символы «+» и «–» для обозначения знака числа и запятую (точку) для разделения целой и дробной части.
Восьмеричная система счисления. Использует восемь цифр – 0, 1, 2, 3, 4, 5, 6, и 7, а также символы «+» и «–» для обозначения знака числа и запятую (точку) для разделения целой и дробной частей числа. Широко использовалась в программировании в 1950-70-ые гг. К настоящему времени практически полностью вытеснена шестнадцатеричной системой счисления, однако функции перевода числа из десятичной системы в восьмеричную и обратно сохраняются в микрокалькуляторах и многих языках программирования.
Десятичная система счисления. Использует десять обычных цифр – 0, 1, 2, 3, 4, 5, 6, 7, 8 и 9, а также символы «+» и «–» для обозначения знака числа и запятую (точку) для разделения целой и дробной частей числа. Существует массовое заблуждение, будто именно десятичная система счисления является наиболее употребительным способом записи чисел. Между тем, более внимательный анализ правил чтения и записи чисел приводит к другому выводу: система счисления, которой мы обычно пользуемся, фактически является двойной, так как имеет основания – 10 и 1000. В частности, в русском языке известны названия только для первых семи разрядов десятичной системы счисления ( 1 – единица, 10 – десяток, 100 – сотня, 1000 – тысяча, 10000 – тьма, 100000 – легион, 1000000 – миллион ), но предпоследние два из них (легион и тьма) давно вышли из употребления, а соседние с ними (миллион и тысяча) – названия классов, а не только разрядов. Итак, фактически в русском языке остались лишь два самостоятельных названия для десятичных разрядов: десяток и сотня. В других языках – аналогичная ситуация.
Шестнадцатеричная система счисления. Использует шестнадцать цифр – 0, 1, 2, 3, 4, 5, 6, 7, 8 и 9 в их обычном смысле, а затем A=10, B=11 , C=12 , D=13 , E=14 , F=15 . Также использует символы «+» и «–» для обозначения знака числа и запятую (точку) для разделения целой и дробной частей числа. Внедрена американской корпорацией IBM. Широко используется в программировании для IBM-совместимых компьютеров. С другой стороны, в некоторых языках сохранились и следы использования этой системы счисления в прошлом. Например, в романских языках (испанском, французском и др.) числительные от 11 до 16 образуются по одному правилу, а от 17 до 19 – по другому. А в русском языке известен пуд, равный 16 килограммам.
Наиболее простыми с точки зрения технической реализации являются так называемые двухпозиционные элементы, способные находиться в одном из двух устойчивых состояний, например:
•
Электромагнитное реле замкнуто или разомкнуто;
•
Ферромагнитная поверхность намагничена или размагничена;
•
Магнитный сердечник намагничен в некотором направлении или в противоположном ему;
•
Транзисторный ключ находится в проводящем или замкнутом состоянии и т.д.
Одно из этих устойчивых состояний может представляться цифрой 0, другое - цифрой 1. С двоичной системой связаны и другие существенные преимущества. Она обеспечивает максимальную помехоустойчивость в процессе передачи информации как между отдельными узлами автоматического устройства, так и на большие расстояния. В ней предельно просто выполняются арифметические действия и возможно применение аппарата булевой алгебры для выполнения логических преобразований информации. Благодаря таким особенностям двоичная система стала стандартом при построении ЭВМ. Широкое применение в ЭВМ нашли также восьмеричная и шестнадцатеричная системы счисления. Обмен информацией между устройствами большинства ЭВМ осуществляется путем передачи двоичных слов. Пользоваться такими словами из-за их большой длины и зрительной однородности человеку неудобно. Поэтому специалисты (программисты, инженеры) как на этапах составления несложных программ для микроЭВМ, их отладки, ручного ввода-вывода данных, так и на этапах их разработки, создания, настройки вычислительных систем заменяют коды машинных команд, адреса и операнды на эквивалентные им величины в восьмеричной или шестнадцатеричной системе счисления.
Системы счисления
Удобства последующего преобразования дискретный сигнал подвергается кодированию ( Формы представления информации в ЭВМ ). Большинство кодов основано на системах счисления, причем использующих позиционный принцип образования числа, при котором значение каждой цифры зависит от ее положения в числе.
Примером позиционной формы записи чисел является та, которой мы пользуемся (так называемая арабская форма чисел). Так, в числах 123 и 321 значения цифры 3, например, определяются ее положением в числе: в первом случае она обозначает три единицы (т.е. просто три), а во втором – три сотни (т.е. триста).
Тогда полное число получается по формуле:
где l – количество разрядов числа, уменьшенное на 1,
i – порядок разряда,
m – основание системы счисления,
a i – множитель, принимающий любые целочисленные значения от 0 до m -1, и соответствующий цифре i -го порядка числа.
Например, для десятичного ( m = 10) числа 345 его полное значение рассчитывается по формуле:
3*102 + 4*101 + 5*100 = 345.
Римские числа являются примером полупозиционной системы образования числа: так, в числах IX и XI знак I обозначает в обоих случаях единицу (признак непозиционной системы), но, будучи расположенным слева от знака X (обозначающего десять), вычитается из десяти, а при расположении справа – прибавляется к десяти. В первом случае полное значение числа равно 9, во втором – 11.
В современной информатике используются в основном три системы счисления (все – позиционные): двоичная, шестнадцатеричная и десятичная.
Двоичная система счисления используется для кодирования дискретного сигнала, потребителем которого является вычислительная техника. Такое положение дел сложилось исторически, поскольку двоичный сигнал проще представлять на аппаратном уровне. В этой системе счисления для представления числа применяются два знака – 0 и 1.
Шестнадцатеричная система счисления используется для кодирования дискретного сигнала, потребителем которого является хорошо подготовленный пользователь – специалист в области информатики. В такой форме представляется содержимое любого файла, затребованное через интегрированные оболочки операционной системы, например, средствами Norton Commander в случае MS DOS. Используемые знаки для представления числа – десятичные цифры от 0 до 9 и буквы латинского алфавита – A, B, C, D, E, F.
Десятичная система счисления используется для кодирования дискретного сигнала, потребителем которого является так называемый конечный пользователь – неспециалист в области информатики (очевидно, что и любой человек может выступать в роли такого потребителя). Используемые знаки для представления числа – цифры от 0 до 9.
Соответствие между первыми несколькими натуральными числами всех трех систем счисления представлено в таблице перевода:
Для различения систем счисления, в которых представлены числа, в обозначение двоичных и шестнадцатеричных чисел вводят дополнительные реквизиты:
• для двоичных чисел – нижний индекс справа от числа в виде цифры 2 или букв В либо b (binary – двоичный), либо знак B или b справа от числа. Например, 101000 2 = 101000 b = 101000 B = 101000B = 101000b;
• для шестнадцатеричных чисел - нижний индекс справа от числа в виде числа 16 или букв H либо h (hexadecimal – шестнадцатеричный), либо знак H или h справа от числа. Например, 3AB 16 = 3AB H = 3AB h = 3ABH = 3ABh.
Для перевода чисел из одной системы счисления в другую существуют определенные правила . Они различаются в зависимости от формата числа – целое или правильная дробь. Для вещественных чисел используется комбинация правил перевода для целого числа и правильной дроби.
Правила перевода целых чисел
Результатом перевода целого числа всегда является целое число.
Перевод из десятичной системы счисления в двоичную и шестнадцатеричную:
а) исходное целое число делится на основание системы счисления, в которую переводится (на 2 - при переводе в двоичную систему счисления или на 16 - при переводе в шестнадцатеричную); получается частное и остаток;
б) если полученное частное меньше основания системы счисления, в которую выполняется перевод, процесс деления прекращается, переходят к шагу в)
в) иначе над частным выполняют действия, описанные в шаге а);
в) все полученные остатки и последнее частное преобразуются в соответствии с таблицей перевода в цифры той системы счисления, в которую выполняется перевод;
г) формируется результирующее число: его старший разряд – полученное последнее частное, каждый последующий младший разряд образуется из полученных остатков от деления, начиная с последнего и кончая первым. Таким образом, младший разряд полученного числа – первый остаток от деления, а старший – последнее частное.
Правила перевода правильных дробей
Напомним, что правильная дробь имеет нулевую целую часть, т.е. у нее числитель меньше знаменателя.
Результат перевода правильной дроби всегда правильная дробь.
Перевод из десятичной системы счисления в двоичную и шестнадцатеричную :
а) исходная дробь умножается на основание системы счисления, в которую переводится (2 или 16);
б) в полученном произведении целая часть преобразуется в соответствии с таблицей в цифру нужной системы счисления и отбрасывается – она является старшей цифрой получаемой дроби;
в) оставшаяся дробная часть (это правильная дробь) вновь умножается на нужное основание системы счисления с последующей обработкой полученного произведения в соответствии с шагами а) и б);
г) процедура умножения продолжается до тех пор, пока ни будет получен нулевой результат в дробной части произведения или ни будет достигнуто требуемое количество цифр в результате;
д) формируется искомое число: последовательно отброшенные в шаге б) цифры составляют дробную часть результата, причем в порядке уменьшения старшинства.
Пример 1 . Выполнить перевод числа 0,847 в двоичную систему счисления. Перевод выполнить до четырех значащих цифр после запятой.
Имеем:
Пример 2. Выполнить перевод числа 0,847 в шестнадцатеричную систему счисления. Перевод выполнить до трех значащих цифр.
Имеем:
В данном примере также процедура перевода прервана.
Таким образом, 0,847 = 0,D8D 16 .
Перевод из двоичной и шестнадцатеричной систем счисления в десятичную.
В этом случае рассчитывается полное значение числа по формуле , причем коэффициенты a i принимают десятичное значение в соответствии с таблицей .
Пример 3 . Выполнить перевод из двоичной системы счисления в десятичную числа 0,1101 2 .
Имеем:
0,1101 2 = 1*2 -1 + 1*2 -2 + 0*2 -3 +1*2 -4 = 0,5 + 0,25 + 0 + 0,0625 = 0,8125.
Расхождение полученного результата с исходным числом (см. пример 1 ) вызвано тем, что процедура перевода в двоичную дробь была прервана.
Таким образом, 0,1101 2 = 0,8125.
Пример 4 . Выполнить перевод из шестнадцатеричной системы счисления в десятичную числа 0,D8D 16 .
Имеем:
0,D8D 16 = 13*16 -1 + 8*16 -2 + 13*16 -3 = 13*0,0625 + 8*0,003906 + 13* 0,000244 = 0,84692.
Расхождение полученного результата с исходным числом (см. пример 2 ) вызвано тем, что процедура перевода в шестнадцатеричную дробь была прервана.
Таким образом, 0,D8D 16 = 0,84692.
Перевод из двоичной системы счисления в шестнадцатеричную:
а) исходная дробь делится на тетрады, начиная с позиции десятичной точки вправо. Если количество цифр дробной части исходного двоичного числа не кратно 4, оно дополняется справа незначащими нулями до достижения кратности 4;
б) каждая тетрада заменяется шестнадцатеричной цифрой в соответствии с таблицей .
Пример 5 . Выполнить перевод из двоичной системы счисления в шестнадцатеричную числа 0,1101 2 .
Имеем: В соответствии с таблицей 1101 2 = D 16 . Тогда 0,1101 2 = 0,D 16 .
Пример 6 . Выполнить перевод из двоичной системы счисления в шестнадцатеричную числа 0,00101012 .
Поскольку количество цифр дробной части не кратно 4, добавим справа незначащий ноль:
Правило перевода дробных чисел (неправильных дробей)
Напомним, что неправильная дробь имеет ненулевую дробную часть, т.е. у нее числитель больше знаменателя.
Результат перевода неправильной дроби всегда неправильная дробь.
При переводе отдельно переводится целая часть числа, отдельно – дробная. Результаты складываются.
Пример 1 . Выполнить перевод из десятичной системы счисления в шестнадцатеричную числа 19,847. Перевод выполнять до трех значащих цифр после запятой.
Представим исходное число как сумму целого числа и правильной дроби:
19,847 = 19 + 0,847.
Как следует из примера 2 раздела Перевод целых чисел 19 = 13 16 , а в соответствии с примером 2 раздела Перевод правильных дробей 0,847 = 0,D8D 16 .
Тогда имеем:
19 + 0,847 = 13 16 + 0,D8D 16 = 13,D8D 16 .
Таким образом, 19,847 = 13,D8D 16 .
Способы перевода чисел из одной системы счисления в другую.
Перевод чисел из одной позиционной системы счисления в другую: перевод целых чисел.
Чтобы перевести целое число из одной системы счисления с основанием d1 в другую с основанием d2 необходимо последовательно делить это число и получаемые частные на основание d2 новой системы до тех пор, пока не получится частное меньше основания d2. Последнее частное – старшая цифра числа в новой системе счисления с основанием d2, а следующие за ней цифры - это остатки от деления, записываемые в последовательности, обратной их получению. Арифметические действия выполнять в той системе счисления, в которой записано переводимое число.
Пример 1. Перевести число 11(10) в двоичную систему счисления.
Ответ: 11(10)=1011(2).
Пример 2. Перевести число 122(10) в восьмеричную систему счисления.
Ответ: 122(10)=172(8).
Пример 3. Перевести число 500(10) в шестнадцатеричную систему счисления.
Ответ: 500(10)=1F4(16).
Перевод чисел из одной позиционной системы счисления в другую: перевод правильных дробей.
Чтобы перевести правильную дробь из системы счисления с основанием d1 в систему с основанием d2, необходимо последовательно умножать исходную дробь и дробные части получающихся произведений на основание новой системы счисления d2. Правильная дробь числа в новой системе счисления с основанием d2 формируется в виде целых частей получающихся произведений, начиная с первого.
Если при переводе получается дробь в виде бесконечного или расходящегося ряда, процесс можно закончить при достижении необходимой точности.
При переводе смешанных чисел, необходимо в новую систему перевести отдельно целую и дробную части по правилам перевода целых чисел и правильных дробей, а затем оба результата объединить в одно смешанное число в новой системе счисления.
Пример 1. Перевести число 0,625(10) в двоичную систему счисления.
Ответ: 0,625(10)=0,101(2).
Пример 2. Перевести число 0,6(10) в восьмеричную систему счисления.
Ответ: 0,6(10)=0,463(8).
Пример 2. Перевести число 0,7(10) в шестнадцатеричную систему счисления.
Ответ: 0,7(10)=0,В333(16).
Перевод двоичных, восьмеричных и шестнадцатеричных чисел в десятичную систему счисления.
Для перевода числа P-ичной системы в десятичную необходимо использовать следующую формулу разложения:
аnan-1…а1а0=аnPn+ аn-1Pn-1+…+ а1P+a0 .
Пример 1. Перевести число 101,11(2) в десятичную систему счисления.
Ответ: 101,11(2)= 5,75(10) .
Пример 2. Перевести число 57,24(8) в десятичную систему счисления.
Ответ: 57,24(8) = 47,3125(10) .
Пример 3. Перевести число 7A,84(16) в десятичную систему счисления.
Ответ: 7A,84(16)= 122,515625(10) .
Перевод восьмеричных и шестнадцатеричных чисел в двоичную систему счисления и обратно.
Для перевода числа из восьмеричной системы счисления в двоичную необходимо каждую цифру этого числа записать трехразрядным двоичным числом (триадой).
Пример: записать число 16,24(8) в двоичной системе счисления.
Ответ: 16,24(8)= 1110,010100(2) .
Примечание: незначащие нули слева для целых чисел и справа для дробей не записываются.
Для обратного перевода двоичного числа в восьмеричную систему счисления, необходимо исходное число разбить на триады влево и вправо от запятой и представить каждую группу цифрой в восьмеричной системе счисления. Крайние неполные триады дополняют нулями.
Пример: записать число 10110,001001(2) в восьмеричной системе счисления.
Ответ: 1110,010100(2)= 16,24(8) .
Для перевода числа из шестнадцатеричной системы счисления в двоичную необходимо каждую цифру этого числа записать четырехразрядным двоичным числом (тетрадой).
Пример: записать число 7A,5E(16) в двоичной системе счисления.
Ответ: 7A,5E(16)= 1111010,01011110(2) .
Примечание: незначащие нули слева для целых чисел и справа для дробей не записываются.
Для обратного перевода двоичного числа в шестнадцатеричную систему счисления, необходимо исходное число разбить на тетрады влево и вправо от запятой и представить каждую группу цифрой в шестнадцатеричной системе счисления. Крайние неполные триады дополняют нулями.
Пример: записать число 1111010,0111111(2) в шестнадцатеричной системе счисления.
Ответ: 1111010,0111111(2)= 7A,5E(16) .
Вопросы к лекции 3
1. Определение систем счисления (СС). (стр. 1)
2. Понятие позиционной СС. (стр. 1)
3. Сколько цифр используется в двоичной системе счисления? Какое основание имеет данная система? Привести пример числа в двоичной СС. Какие символы используются для обозначения знака числа? Какие символы используются для разделения целой и дробной части числа? (стр. 1)
4. Сколько цифр используется в восьмеричной системе счисления? Какое основание имеет данная система? Привести пример числа в восьмеричной СС. Какие символы используются для обозначения знака числа? Какие символы используются для разделения целой и дробной части числа? (стр. 1)
5. Сколько цифр используется в десятичной системе счисления? Какое основание имеет данная система? Привести пример числа в десятичной СС.
Какие символы используются для обозначения знака числа? Какие символы используются для разделения целой и дробной части числа? (стр. 1)
6. Сколько цифр используется в шестнадцатеричной системе счисления? Какое основание имеет данная система? Привести пример числа в шестнадцатеричной СС. Какие символы используются для обозначения знака числа? Какие символы используются для разделения целой и дробной части числа? (стр. 1)
7. Привести формулу полного числа в позиционной СС с пояснениями для каждого знака. Привести формулу для расчета полного значения числа 345 в десятичной СС. (стр. 3-4)
8. Привести таблицу нескольких чисел для трех позиционных СС. (стр. 4-5)
9. Какие дополнительные реквизиты используются для обозначения различных позиционных систем счисления? Привести пример. (стр. 4)
10. Привести правила перевода целого числа из десятичной СС в двоичную, восьмеричную, шестнадцатеричную. Привести примеры. (стр. 4-6)
11. Как производится перевод чисел из двоичной, восьмеричной, шестнадцатеричной СС в десятичную? Примеры. (стр. 5-7)
12. Как производится перевод из двоичной СС в шестнадцатеричную? Примеры. (стр. 6)
13. Как производится перевод из шестнадцатеричной СС в двоичную? Примеры. (стр. 8)
14. Правила перевода правильных дробей из десятичной СС в двоичную и шестнадцатеричную СС (стр. 8-9)
Лекция 3 Системы счисления (СС)
Лекции по предмету «Информатика»