Скачать презентацию СИСТЕМЫ СЧИСЛЕНИЯ План Лекции 1 Понятие системы счисления Скачать презентацию СИСТЕМЫ СЧИСЛЕНИЯ План Лекции 1 Понятие системы счисления

L10_2-Years_2-Term_1.ppt

  • Количество слайдов: 26

СИСТЕМЫ СЧИСЛЕНИЯ План Лекции 1. Понятие системы счисления (СС) 2. Непозиционные СС (НПСС), примеры СИСТЕМЫ СЧИСЛЕНИЯ План Лекции 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. Используются следующие правила: 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 Пример умножения 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, 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 может быть разложено по базису степеней Вариант 2. Любое целое десятичное число А 10 может быть разложено по базису степеней основания q=2: Разделим А 10 на 2. Частное будет равно: а остаток будет равен а 0. Продолжая этот процесс, после n-ого шага получим последовательность остатков: совпадающую с обратной последовательностью цифр целого двоичного числа, записанного в свернутой форме: 13

Таким образом, алгоритм перевода целого десятичного числа в двоичное выглядит так: 1. Последовательно выполнять Таким образом, алгоритм перевода целого десятичного числа в двоичное выглядит так: 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 в Этот же алгоритм можно реализовать простым делением в столбик. Пример. Перевести число 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 может быть 2. Перевод десятичных дробей в двоичную СС Любая десятичная дробь А 10 может быть разложено по базису степеней основания q=2: Умножим А 10 на 2. Произведение будет равно: Целая часть равна а-1. Продолжая этот процесс до тех пор, пока не будет получена дробная часть, равная 0, или не будет достигнута требуемая точность вычислений. Найденная при этом последовательность цифр совпадает с последовательностью цифр дробного двоичного числа: 16

Таким образом, алгоритм перевода десятичной дроби в двоичную выглядит так: 1. Последовательно выполнять умножение Таким образом, алгоритм перевода десятичной дроби в двоичную выглядит так: 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 Алгоритм перевода из СС с произвольным основанием 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 -ричную дробь Десятичная дробь/дробная часть произведения Множитель Целая Пример: перевести 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 -ричные и Обратно Алгоритм перевода из двоичной СС в 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 Вспомогательные Таблицы Для перевода двоичных чисел в 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. Для перевода дробного двоичного числа: В 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 и 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 - Вычитание (на примере двоичной системы). Таблица вычитания одноразрядных двоичных чисел 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