Системы счисления лекции
              Тема: Представление и обработка чисел в компьютере. 
                                  План лекции. 
    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         | 
   +------------------------------------------------------------------------+ 
   
 |