Системы счисления лекцииСистемы счисления лекцииТема: Представление и обработка чисел в компьютере. План лекции. 1. Системы счисления. 2. Перевод целых и дробных чисел из одной системы счисления в другую. 3. Арифметические операции в двоичной системе счисления и представление чисел в других системах счисления. Вопрос 1. Представление чисел в компьютере по сравнению с известными формами имеет два отличия: 1) числа записываются в двоичной системе счисления; 2) для записи и обработки чисел отводится конечное количество разрядов. Способ представления чисел определяется системой счисления. ОПР1. Система счисления - это правило записи чисел с помощью заданного набора специальных знаков - цифр. Людьми использовались различные способы записи чисел, которые можно объединить в несколько групп: унарная, непозиционные и позиционные. 1 группа. Унарная - это система счисления, в которой для записи чисел используется только один знак - I («палочка»). Следующее число получается из предыдущего добавлением новой I единицы, их количество равно самому числу. Примечание: для записи числа в унарной системе используется обозначение Z[1]. 2 группа. Из непозиционных наиболее распространенной можно считать Римскую систему счисления. В ней некоторые базовые числа обозначены заглавными латинскими буквами: 1 - I, 5 - V, 10 - X, 50 - L, 100 - C, 500 - D, 1000 - M. Все другие числа строятся комбинаций базовых в соответствии со следующими правилами: 1. Если цифра меньшего значения стоит справа от большей цифры, то их значения суммируются, если слева - то меньшее значение вычитается из большего. 2. Цифры I, X, C, M могут следовать подряд не более трех раз каждая. 3. Цифры V, L, D могут использоваться в записи числа не более одного раза. Например: XIX - 19, MDXLIX - 1549. Запись чисел в такой системе громоздка и неудобна, но еще более неудобным оказывается выполнение в ней даже самых простых арифметических операций. 3 группа. В настоящее время для представления чисел применяются позиционные системы счисления. ОПР2. Позиционными называются системы счисления, в которых значение каждой цифры в изображении числа определяется ее положением (позицией) в ряду других цифр. Наиболее распространенной и привычной является система счисления, в которой для записи чисел используется 10 цифр. Число представляет собой краткую запись многочлена, в который входят степени некоторого другого числа - основания системы счисления. Например: 272, 12 = 2 * 10^2 + 7 * 10^1 + 2 * 10^0 + 1 * 10^-1 + 2 * 10^-2. //В истории человечества имеются свидетельства использования других систем счисления - пятиричной, шестиричной, двенадцатиричной и т.п. Общим для унарной и римской систем счисления является то, что значение числа в них определяется посредством операций сложения и вычитания базисных цифр, из которых составлено число, независимо от их позиции в числе. Такие системы получили названия аддитивных. В отличие от них позиционное представление считается аддитивно-мультипликативным, поскольку значение числа определяется операциями умножения и сложения. По принципу, положенному в основу десятичной системы счисления можно построить системы с иным основанием. Пусть p - основание системы счисления, k - общее число цифр числа, тогда любое число Z может быть представлено в виде многочлена со степенями р: Z[p] = a[k-1] * p^k-1 + a[k-2] * p^k-2 + … + a[1] * p^1 + a[0] * p^0. (*) Первое допустимое значение р = 2 - оно является минимальным для позиционных систем. Система счисления с основанием 2 называется двоичной. Цифрами двоичной системы являются 0 и 1, а форма представления числа строится по степеням 2. Вопрос 2. Поскольку одно и то же число может быть записано в различных системах счисления, то возможен перевод представления числа из одной системы в другую. Теоретически возможно произвести перевод для любых оснований системы. Однако подобный прямой перевод будет затруднен выполнением операций по правилам арифметики недесятичных систем счисления. По этой причине более удобным оказывается вариант преобразования с промежуточным переводом с основанием десятичной системы счисления, для которого арифметические операции выполнить достаточно легко. Алгоритмы работы с целыми числами. Способ 1 (обычно его представляют в виде лестницы). Алгоритм перевода из 10 в другую систему. 1. целочисленно разделить исходное число Z(10) на основание новой системы счисления (p) и найти остаток от деления - это будет цифра 0-го разряда числа Z(p). 2. частное от деления снова целочисленно разделить на (р) с выделением остатка, процедуру продолжать до тех пор, пока частное от деления не окажется меньше (р). 3. образованные остатки от деления, поставленные в порядке, обратном их получения, и представляют Z(p). Примеры: 123(10) перевести в (5), во (2) и т.п. Способ 2. Алгоритм перевода Z(p) в Z(10). Для этого преобразования используют формулу (*). Примеры: 443(5) перевести в (10), 1110(2) перевести (10) и т.п. Алгоритмы работы с дробными числами. Вещественное число, в общем случае содержит целую и дробную часть, всегда можно представить в виде суммы целого числа и правильной дроби. Рассмотрим алгоритм перевода правильных дробей. Введем следующие обозначения: правильную дробь в исходной системе счисления (р) будем записывать в виде 0,Y(p). Последовательность рассуждений весьма напоминает проведенную ранее для целых чисел. Способ 3. Алгоритм перевода из (10) в другую систему (р). 1. умножить исходную дробь в 10-ной системе счисления на основание (р), выделить целую часть - она будет первой цифрой новой дроби, отбросить целую часть; 2. для оставшейся дробной части операцию умножения с выделением целой и дробной части повторить, пока в дробной части не окажется 0 или не будет достигнута желаемая точность конечного числа. 3. записать дробь в виде последовательности цифр после ноля с разделителем в порядке их появления. Примеры: выполнить преобразование 0,375 (10) перевести (2) и т.п. Способ 4. Перевод 0,Y(p) в 0,Y(10) сводится к вычислению значения формы (*) в десятичной системе счисления. Примеры: 0,011(2) перевести в (10) и т.п. Примечание: следует отметить, что после перевода дроби, которая была конечной в исходной системе счисления, дробь может оказаться бесконечной в новой системе. Соответственно, рациональное число в исходной системе может после перехода превратиться в иррациональное. Справедливо и обратное. Вопрос 3. Рассмотрим, как с беззнаковыми числами выполняются арифметические операции, не меняющие типа числа. Сложение производится согласно таблице сложения, которая для двоичных чисел имеет вид: 0 + 0 = 0 0 + 1 = 1 1 + 0 = 1 1 + 1 = 10 В последнем случае в том разряде, где находились слагаемые, оказывается 0, а 1 переносится в старший разряд. Примеры: 0101 + 1100 и т.п. 0101 + 1100 10001 Умножение производится согласно таблице умножения, которая для двоичных чисел имеет вид: 0 * 0 = 0 0 * 1 = 0 1 * 0 = 0 1 * 1 = 1 Примеры: 1101 * 101 и т.п. 1101 * 101 1101 + 0000 1101 1000001 Таким образом , умножение двоичных чисел сводится к операциям сдвиг на один двоичный разряд влево и повторения первого сомножителя в тех разрядах, где второй сомножитель содержит 1, и сдвига без повторения в разрядах с 0. Интерес к двоичной системе счисления вызван тем, что именно эта система используется для представления чисел в компьютере. Однако двоичная запись оказывается громоздкой, поскольку содержит много однородных цифр. Поэтому в нумерации ячеек памяти компьютера, записи кодов команд, нумерации регистров и устройств используются системы счисления с основанием 8 и 16. Представление чисел в системах счисления +------------------------------------------------------------------------+ | 10-ная | 2-ная | 8-ная | 16-ная | |-----------------+-----------------+-----------------+------------------| | 0 | 0 | 0 | 0 | |-----------------+-----------------+-----------------+------------------| | 1 | 1 | 1 | 1 | |-----------------+-----------------+-----------------+------------------| | 2 | 10 | 2 | 2 | |-----------------+-----------------+-----------------+------------------| | 3 | 11 | 3 | 3 | |-----------------+-----------------+-----------------+------------------| | 4 | 100 | 4 | 4 | |-----------------+-----------------+-----------------+------------------| | 5 | 101 | 5 | 5 | |-----------------+-----------------+-----------------+------------------| | 6 | 110 | 6 | 6 | |-----------------+-----------------+-----------------+------------------| | 7 | 111 | 7 | 7 | |-----------------+-----------------+-----------------+------------------| | 8 | 1000 | 10 | 8 | |-----------------+-----------------+-----------------+------------------| | 9 | 1001 | 11 | 9 | |-----------------+-----------------+-----------------+------------------| | 10 | 1010 | 12 | A | |-----------------+-----------------+-----------------+------------------| | 11 | 1011 | 13 | B | |-----------------+-----------------+-----------------+------------------| | 12 | 1100 | 14 | C | |-----------------+-----------------+-----------------+------------------| | 13 | 1101 | 15 | D | |-----------------+-----------------+-----------------+------------------| | 14 | 1110 | 16 | E | |-----------------+-----------------+-----------------+------------------| | 15 | 1111 | 17 | F | +------------------------------------------------------------------------+ |
|