Пятница, 11.10.2024, 03:26

Я программист!
Меню сайта
Форма входа
Поиск
Друзья сайта
  • Официальный блог
  • Сообщество uCoz
  • FAQ по системе
  • Инструкции для uCoz
  • Статистика

    Онлайн всего: 2
    Гостей: 2
    Пользователей: 0

    Рассылки Subscribe.Ru
    Как я стал программистом
    Подписаться письмом

    Рассылки Subscribe.Ru
    Как заработать капитал на уникальном бизнесе
    Подписаться письмом

    Рассылки Subscribe.Ru
    Как хорошо потрабатывать без отрыва от роботы
    Подписаться письмом

    Занятие №1. Системы счисления (2 часа)

    Системы счисления

    Позиционные системы счисления

    Система счисления - принятый способ записи чисел и сопоставления этим записям реальных значений. Все системы счисления можно разделить на два класса: позиционные и непозиционные. Для записи чисел в различных системах счисления используется некоторое количество отличных друг от друга знаков. Число таких знаков в позиционной системе счисления называется основанием системы счисления.

     

    Основание

    Система счисления

    Знаки

    2

    Двоичная

    0,1

    3

    Троичная

    0,1.2

    4

    Четвертичная

    0,1,2,3

    5

    Пятиричная

    0,1,2,3,4

    8

    Восьмиричная

    0,1,2,3,4,5,6,7

    10

    Десятичная

    0,1,2,3,4,5,6,7,8,9

    12

    Двенадцатиричная

    0,1,2,3,4,5,б,7,8,9,А,В

    16

    Шестнадцатиричная

    0,1,2,3,4,5,6,7,8,9,A.B,D,E,F

    табл. 1

    В позиционной системе счисления число может быть представлено в виде суммы произведений коэффициентов на степени основания системы счисления:

     

    AnAn-1An-2 … A1,A0,A-1,A-2  =АnВn + An-1Bn-1 + ... + A1B1 + А0В0 + A-1B-1 + А-2В-2 + ...

     

    Значение каждого знака в числе зависит от позиции, которую занимает знак в записи числа. Такие системы счисления называют позиционными.

    Примеры (десятичный индекс внизу указывает основание системы счисления):

     

    23,43(10) = 2*101 + З*10° + 4*10-1 + З*10-2

    692(10) = 6* 102 + 9*101 + 2.

    1101(2)= 1*23 + 1*22+0*21+ 1*2°;

    112(3) = l*32+ 1*31 +2*3°;

    341,5(8) =3*82+ 4*81 +1*8° +5*8-1;

    A1F4(16) = A*162 + 1*161 + F*16° + 4*16-1.

     

    При работе с компьютерами приходится параллельно использовать несколько позиционных систем счисления (чаще всего двоичную, десятичную и шестнадцатиричную), поэтому большое практическое значение имеют процедуры перевода чисел из одной системы счисления в другую.

    Чтобы перевести целую часть числа из десятичной системы в систему с основанием В, необходимо разделить ее на В. Остаток даст младший разряд числа. Полученное при этом частное необходимо вновь разделить на В - остаток даст следующий разряд числа и т.д. Для перевода дробной части ее необходимо умножить на В. Целая часть полученного произведения будет первым (после запятой, отделяющей целую часть от дробной) знаком. Дробную же часть произведения необходимо вновь умножить на В. Целая часть полученного числа будет следующим знаком и т.д.

    Кроме рассмотренных выше позиционных систем счисления существуют такие, в которых значение знака не зависит от того места, которое он занимает в числе. Такие системы счисления называются непозиционными. Наиболее известным примером непозиционной системы является римская. В этой системе используется 7 знаков (I, V, X, L, С, D, М), которые соответствуют следующим величинам:

    I — 1

    V — 5

    X —10

    L — 50)

    С — 100

    D — 500

    M — 1000

    Примеры: III (3), LIX (59), DLV (555).

    Недостатком непозиционных систем является отсутствие формальных правил записи чисел и, соответственно, арифметических действий над ними.

     

    Двоичная

    Внутреннее представление любой информации в компьютере является двоичным, т.е. описываемым наборами только из двух знаков (0 и 1).

    Целая и дробная части переводятся порознь. Для перевода целой части (или просто целого) числа необходимо разделить ее на основание системы счисления и продолжать делить частные от деления до тех пор, пока частное не станет равным 0. Значения получившихся остатков, взятые в обратной последовательности, образуют искомое двоичное число. Например:

     

                                     Остаток

    25 : 2 = 12                (1),

    12 : 2 =  6                 (0),

    6 : 2  =  3                  (0),

    3 : 2  =  1                  (1),

    1 : 2  =  0                  (1).

     

    Таким образом

     

    2510 = 110012

     

    Для перевода дробной части (или числа, у которого «0» целых) надо умножить ее на 2. Целая часть произведения будет первой цифрой числа в двоичной системе. Затем, отбрасывая у результата целую часть, вновь умножаем на 2 и т.д. При этом конечная десятичная дробь при этом вполне может стать бесконечной (периодической) двоичной. Например:

     

    0,73 х 2 = 1,46 (целая часть 1),

    0,46 х 2 = 0,92 (целая часть 0),

    0,92 х 2 = 1,84 (целая часть 1),

    0,84 х 2 = 1,68 (целая часть 1) ...

     

    В итоге

     

    0,7310 =0,1011...2

     

    Сложение

    +

    0

    1

    0

    0

    1

    1

    1

    10

    При двоичном сложении 1 + 1 возникает перенос единицы в старший разряд как в десятичной арифметике

         1 1 1 0 0 1         57

     +         1 1          +3

       1 1 1 1 0 0          60

     

    Умножение

    х

    0

    1

    0

    0

    0

    1

    0

    1

     

          1 1 1 0 0 1        57

     х          1 1        

        1 1 1 0 0 1         х       

    + 1 1 1 0 0 1_          _3_

    1 0 1 0 1 0 1 1         171

     

    Вычитание

    Операция двоичного вычитания эквивалентна операции двоичного сложения с двоичным дополнением вычитаемого. Двоичное дополнение строится таким образом: все биты числа инвертируются (нули заменяются на единицы, и наоборот), а затем к результату добавляется единица.

    Построение двоичного дополнения 56 :

      0 0 1 1 1 0 0 0   число    56

      1 1 0 0 0 1 1 1   побитовое отрицание

      0 0 0 0 0 0 0 1   + 1

      1 1 0 0 1 0 0 0   число  - 56

    Операция сложения

    + 0 1 0 1 0 0 1 1    число   83

      1 1 0 0 1 0 0 0    число  -56

    1 0 0 0 1 1 0 1 1 переход в 9 бит: число 283

     

    283 mod 256 = 27

    При таком представлении признак переполнения называют также признаком потери знака.

    Видно, что четыре бита позволяют нам представить либо ноль и натуральные числа от 1 до 15, либо целые числа от - 8 до 7. Во втором случае, старший бит может интерпретироваться как знаковый — если он равен 1, число отрицательное, если 0 — положительное. Для манипулирования числами в обоих представлениях можно использовать одни и те же команды сложения и вычитания, различие возникает только, когда мы начинаем интерпретировать результаты сравнения таких чисел или сами эти числа (например, переводить их в десятичный формат).

    Беззнаковое

    Знаковое

    Двоичное

    7

    +7

    0111

    6

    +6

    0110

    5

    +5

    0101

    4

    +4

    0100

    3

    +3

    0011

    2

    +2

    0010

    1

    +1

    0001

    0

    0

    0000

    15

    -1

    1111

    14

    -2

    1110

    13

    -3

    1101

    12

    -4

    1100

    11

    -5

    1011

    10

    -6

    1010

    9

    -7

    1001

    8

    -8

    1000


    Читать дальше...