L10_2-Years_2-Term_1.ppt
- Количество слайдов: 26
СИСТЕМЫ СЧИСЛЕНИЯ План Лекции 1. Понятие системы счисления (СС) 2. Непозиционные СС (НПСС), примеры НПСС 3. Позиционные СС (ПСС) - представление чисел с основанием 10, 2, 8, 16 и с произвольным основанием - перевод чисел из ПСС с одним основанием в ПСС с другим основанием - арифметические операции в неограниченной и ограниченной разрядной сетке, перенос и переполнение - знаковые и беззнаковые числа
Понятие Системы Счисления Система счисления – это способ представления чисел и правила действий над ними. Цифры – это знаки, используемые при записи чисел в данной CС. римская СС: I, V, X, … двоичная СС: 0, 1 десятичная СС: 0, 1, 2, … 9 Алфавит – это полный набор символов данной СС (цифры, разделители целой и дробной части, «-» ) 2
Непозиционные Системы Счисления Непозиционная система счисления – это СС, в которой значение каждой цифры не зависит от ее положения (места, позиции) в записи числа. Римская СС для обозначения цифр использует буквы римского алфавита: I V X L C D M 1 5 10 50 100 500 1000 Например: CCCXXVII = 327 Цифра C независимо от того, где она находится, обозначает только свой количественный эквивалент 100. То же самое касается цифр X и I. 3
Используются следующие правила: 1. В числе цифры записываются слева направо в порядке убывания. 2. Величина числа определяется как сумма или разность цифр в числе. Если меньшая цифра стоит слева от большей цифры, то она вычитается, если справа – прибавляется: MDCLXVI = 1000+500+100+50+10+5+1=1666 MCDXLIV = 1000 -100+500 -10+50 -1+5=1444 3. Запрещена запись буквы I в цифре более трех раз подряд XIX – верная запись, XVIIII – не верная запись. 4
Пример умножения 123*165 CXXIII CLXV D…. . LL…VVV M……. CC…. XXX… MMMMM…DD……LLL…… MMMMMM……CCC……… MMMMMMMMMDDDCCCCCLLLLLXXXVVV CCCCCCC. LXXXXV DDDD…………. . MMMMMMMMMM……………. MMMMMMMMMMCCLXXXXV 5
Позиционные Системы Счисления Позиционная система счисления – это СС, в которой значение каждой цифры зависит от ее позиции в записи числа. Позиция цифры в числе называется разрядом. Разряд числа возрастает справа налево. “ 3” - количество тысяч (три тысячи, 3000) “ 2” - количество сотен (две сотни, 200) “ 3” - количество десятков (три десятка, 30) “ 2” - количество единиц (две единицы, 2) 32 32 первый (младший) разряд промежуточные разряды старший разряд 6
Алфавит и Основание ПСС Каждая ПСС имеет определенный алфавит цифр и основание. Основание ПСС (обозначается q) – это число, которое равно количеству символов (цифр) в алфавите системы. Примеры используемых ПСС q Алфавит Десятичная 10 0, 1, 2, 3, 4, 5, 6, 7, 8, 9 Двоичная 2 0, 1 Восьмеричная 8 0, 1, 2, 3, 4, 5, 6, 7 Шестнадцатеричная 16 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, A (10), B (11), C (12), D (13), E (14), F (15) Произвольная q 0, 1, 2, …q-1 Примеры неиспользуемых ПСС: английская (q=12, дюжина), китайская (q=5), вавилонская (q=60), майя (q=20) 7
Запись Числа в Свернутой и Развернутой Форме Свернутая запись : Развернутая запись : Здесь: Aq – само число, q – основание СС, аi – цифры данной СС, n – число разрядов целой части числа, m - число разрядов дробной части числа. разряды целой части, n = 3 Пример: 385, 65 = цифры СС 3· 102 + 8 · 101 + 5 · 100 + 6 · 10 -1 + 5 · 10 -2 разряды дробной части, m=2 основание СС 8
Значение числа складывается как сумма цифр, составляющих число, умноженных на основание системы в степени, обозначающей номер позиции этой цифры в числе. Пример: 443, 2510 = 6· 82 + 7· 81 + 3· 80 + 2· 8 -1 Последовательность степеней основания есть базис СС Каждое из чисел базиса задает значение, или «вес» , соответствующего разряда. Примеры базисов некоторых ПСС: Система счисления Базис Десятичная … 10 -2, 10 -1, 100, 101, 102, 103, … Двоичная … 2 -2, 2 -1, 20, 21, 22, 23, … Восьмеричная … 8 -2, 8 -1, 80, 81, 82, 83, … 9
В математике существует термин: разложить по базису. Применительно к представлению чисел в разных ПСС это значит представить число в развернутой форме. Примеры: разложить по базису системы счисления числа Решение: 101, 01; 673, 28; 15 FC 16 101, 01 = 1· 22 + 0· 21 + 1· 20 + 0· 2 -1 +1· 2 -2 673, 28 = 6· 82 + 7· 81 + 3· 80 + 2· 8 -1 15 FC 16 = 1· 163 + 5· 162 + F· 161 + C· 160 Из формулы для представления числа в развернутом виде следует общий для всех ПСС вывод: умножение или деление числа на основание СС приводит к сдвигу запятой, отделяющей целую и дробную части, вправо или влево соответственно: 333, 3310· 10 = 3333, 310 333, 3310: 10 = 33, 33310 101, 012· 2 = 1010, 12 101, 012: 2 = 10, 1012 10
Перевод Чисел из ПСС с Одним Основанием в ПСС с Другим Основанием Для перевода числа в десятичную СС из любой ПСС (с произвольным основанием) необходимо записать это число в развернутой форме и вычислить его значение: Пример 1. Перевод из двоичной системы: 10, 112 = 1· 21 + 0· 20 + 1· 2 -1 +1· 2 -2 = 1· 2 + 0· 1 + 1· 1/2 +1· 1/4 = 2, 7510 Пример 2. Перевод из восьмеричной системы: 67, 58 = 6· 81 + 7· 80 + 5· 8 -1 = 6· 8 + 7· 1 + 5· 1/8 = 55, 62510 Пример 3. Перевод из шестнадцатеричной системы: 19 F 16 = 1· 162 + 9· 161 + F· 160 = 1· 256 + 9· 16 + 15· 1 = 41510 11
Перевод Чисел из Десятичной в 2, 8, 16 -ричные СС Замечание 1. Рассмотрим алгоритм перевода из десятичной в двоичную СС. Для остальных перевод делается аналогично. Замечание 2. Алгоритмы перевода целых чисел и правильных дробей различны и будут рассматриваться отдельно. 1. Перевод целых десятичных чисел в двоичную СС Вариант 1. С помощью таблицы: 128 64 32 16 8 4 2 1 27 0 0 0 1 1 94 0 1 1 1 1 0 155 1 0 0 1 1 12
Вариант 2. Любое целое десятичное число А 10 может быть разложено по базису степеней основания q=2: Разделим А 10 на 2. Частное будет равно: а остаток будет равен а 0. Продолжая этот процесс, после n-ого шага получим последовательность остатков: совпадающую с обратной последовательностью цифр целого двоичного числа, записанного в свернутой форме: 13
Таким образом, алгоритм перевода целого десятичного числа в двоичное выглядит так: 1. Последовательно выполнять деление исходного целого десятичного числа и получаемых целых частных на 2 до тех пор, пока не будет получено частное, меньшее делителя т. е. 2. 2. Записать полученные остатки в обратной последовательности и получить искомое число. Реализация этого алгоритма иллюстрируется таблицей: 13910 = ? 2 Десятичное число/целое частное Делитель Остаток Цифры двоичного числа Двоичное число 139 69 34 17 8 4 2 1 2 2 2 2 1 1 0 0 0 1 а 0 а 1 а 2 а 3 а 4 а 5 а 6 а 7 1 0 0 0 1 1 14
Этот же алгоритм можно реализовать простым делением в столбик. Пример. Перевести число 1910 в двоичное 19 2 18 9 2 1 8 4 2 1 4 2 2 0 2 1 2 0 1 1 0 0 1 12 Ответ: 1910 = 100112 15
2. Перевод десятичных дробей в двоичную СС Любая десятичная дробь А 10 может быть разложено по базису степеней основания q=2: Умножим А 10 на 2. Произведение будет равно: Целая часть равна а-1. Продолжая этот процесс до тех пор, пока не будет получена дробная часть, равная 0, или не будет достигнута требуемая точность вычислений. Найденная при этом последовательность цифр совпадает с последовательностью цифр дробного двоичного числа: 16
Таким образом, алгоритм перевода десятичной дроби в двоичную выглядит так: 1. Последовательно выполнять умножение исходной десятичной дроби и получаемых дробей на 2 до тех пор, пока не будет получена дробная часть, равная 0, или не будет достигнута требуемая точность вычислений 2. Получить искомую дробь, записав найденные целые части произведения в прямой последовательности Реализация этого алгоритма иллюстрируется таблицей: 0, 12510 = ? 2 Десятичная дробь/дробная часть произведения Множитель Целая часть Цифры произведения двоичного числа 0, 125 2 0 а-1 0, 25 2 0 а-2 0, 5 2 1 а-3 0, 0 2 Ответ: 0, 12510 = 0, 0012 17
Перевод Чисел из СС Основанием p в СС с Основанием q Алгоритм перевода из СС с произвольным основанием p в СС с основанием q аналогичен рассмотренным выше. Пример: перевести 74110 в 16 -ричное число Десятичное число/целое частное Делитель Остаток Цифры 16 ричного числа 16 -ричное число 741 46 2 16 16 16 5 14 2 а 0 а 1 а 2 2 Е 5 Ответ: 74110 = 2 Е 516 18
Пример: перевести 0, 382310 в 8 -ричную дробь Десятичная дробь/дробная часть произведения Множитель Целая часть произведения Цифры 8 ричного числа 0, 3823 8 3 а-1 0, 0584 8 0 а-2 0, 0467 8 3 а-3 0, 7376 8 5 а-4 0, 9008 8 7 а-5 0, 2064 8 1 а-6 0, 6513 8 5 а-7 Проверка: Ответ: 0, 382310 = 0, 303578 19
Перевод Чисел из Двоичной СС в 8 и 16 -ричные и Обратно Алгоритм перевода из двоичной СС в 8 и 16 -ричные СС и обратно проще описанного выше. Вспомним, что каждый разряд двоичного числа содержит 1 бит, каждый разряд 8 -ричного числа содержит 3 бит, каждый разряд 16 -ричного числа содержит 4 бит. Следовательно, для перевода целой части двоичного числа: В 8 -ричную CC В 16 -ричную CC 1. справа налево разбить двоичное число на триады (группы по 3 цифры) 1. справа налево разбить двоичное число на тетрады (группы по 4 цифры) 2. В последней левой группе дополнить недостающие цифры 0 слева 3. каждую триаду преобразовать в 8 ричное число, используя таблицу 3. каждую тетраду преобразовать в 16 ричное число, используя таблицу 20
Вспомогательные Таблицы Для перевода двоичных чисел в 8 -ричные Двоичная триада 000 001 010 011 100 101 110 111 8 -ричная цифра 0 1 2 3 4 5 6 7 Для перевода двоичных чисел в 16 -ричные Двоичная тетрада 16 -ричная цифра 0000 0001 0010 0011 0100 0101 0110 0111 1000 1001 1010 1011 1100 1101 1110 1111 0 1 2 3 4 5 6 7 8 9 А B C D E F Пример: 1010012 101 001 518 1010012 0010 1001 2916 21
Для перевода дробного двоичного числа: В 8 -ричную систему В 16 -ричную систему 1. слева направо разбить двоичное число на триады (группы по 3 цифры) 1. слева направо разбить двоичное число на тетрады (группы по 4 цифры) 2. В последней правой группе дополнить недостающие цифры 0 справа 3. каждую триаду преобразовать в 8 ричное число, используя таблицу 3. каждую тетраду преобразовать в 16 ричное число, используя таблицу Пример: 0, 1101012 0, 110 101 0, 658 68 58 добавленные 0 0, 1101012 0, 1101 0100 0, D 416 D 16 416 22
Алгоритм перевода из 8 и 16 -ричных СС в двоичную Для перевода чисел из 8 и 16 -ричных СС в двоичную необходимо цифры числа преобразовать в группы двоичных чисел. При переводе из 8 -ричной СС каждую цифру восьмеричного числа нужно преобразовать в триаду – группу из трех двоичных разрядов Пример: 748 7 111, 4 100 Ответ: 748 = 1111002 При переводе из 16 -ричной СС каждую цифру шестнадцатеричного числа нужно преобразовать в тетраду – группу из четырех двоичных разрядов Пример: 0, BA 16 B 1011, A 1010 Ответ: 0, BA 16 = 0, 101110102 23
Арифметические Операции в Неограниченной Разрядной Сетке Сложение (на примере двоичной системы). Таблица сложения одноразрядных двоичных чисел 0+0=0 0+1=1 1+0=1 1 + 1 = 10 Если значение числа в некотором разряде становится равным или большим основания – происходит переполнение. При этом производится перенос единицы в старший разряд. Пример: 27+94=121 01011110 + 00011011 01111001 24
Вычитание (на примере двоичной системы). Таблица вычитания одноразрядных двоичных чисел 0 -0=0 0 - 1 = 11 1 -0=1 1 -1=0 В таблиц чертой над 1 обозначен заем из старшего разряда Если уменьшаемое по абсолютной величине больше вычитаемого, то вычитание происходит аналогично десятичной СС Пример: 94 -27=67 - 1011110 0011011 1000011 25
Если уменьшаемое по абсолютной величине меньше вычитаемого, то результат получается в так называемом дополнительном коде Пример: 27 -94=-67 - 00110111101 Для возврата из дополнительного кода в прямой код нужно вычесть 1 и обратить полученное число, не затрагивая 1 с чертой: 0111101 – 1 = 0111100 1000011 В итоге: 110000112 = -67 В памяти отрицательные числа хранятся сразу в дополнительном коде. Чтобы преобразовать число в дополнительный код нужно: 1. Перевести его в обратный код (т. е. поменять 1 на 0 и наоборот) 2. Прибавить 1. Пример: 01010011 (прямой) 10101100 (обр. ) 10101101 (доп. ) 26


