Скачать презентацию Арифметические основы компьютеров Кафедра Прикладная математика и фундаментальная Скачать презентацию Арифметические основы компьютеров Кафедра Прикладная математика и фундаментальная

АРИФМЕТИЧЕСКИЕ ОСНОВЫ КОМПЬЮТЕРОВ.pptx

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

Арифметические основы компьютеров Кафедра «Прикладная математика и фундаментальная информатика» Арифметические основы компьютеров Кафедра «Прикладная математика и фундаментальная информатика»

Система счисления – это совокупность приёмов и правил, по которым числа записываются и читаются. Система счисления – это совокупность приёмов и правил, по которым числа записываются и читаются. Системы счисления подразделяются на: позиционные; непозиционные. 2

Непозиционные системы счисления В непозиционных системах счисления вес цифры (т. е. тот вклад, который Непозиционные системы счисления В непозиционных системах счисления вес цифры (т. е. тот вклад, который она вносит в значение числа) не зависит от ее позиции в записи числа. Примеры непозиционных систем счисления: единичная (унарная); древнеегипетская (десятичная, но непозиционная); римская; алфавитные (греческая, славянская, финикийская и др. ) 3

Недостатки непозиционных систем счисления Существует постоянная потребность введения новых знаков для записи больших чисел. Недостатки непозиционных систем счисления Существует постоянная потребность введения новых знаков для записи больших чисел. Невозможно представлять дробные и отрицательные числа. Сложно выполнять арифметические операции, так как не существует алгоритма их выполнения. 4

Позиционные системы счисления В позиционных системах счисления вес каждой цифры изменяется в зависимости от Позиционные системы счисления В позиционных системах счисления вес каждой цифры изменяется в зависимости от ее положения (позиции) в последовательности цифр, изображающих число. Например, в числе 757, 7 первая семерка означает 7 сотен, вторая — 7 единиц, а третья — 7 десятых долей единицы. Сама же запись числа 757, 7 означает сокращенную запись выражения 700 + 50 + 7 + 0, 7 = 7. 102 + 5. 101 + 7. 100 + 7. 10— 1 = 757, 7. 5

Основные определения Любая позиционная система использует определённый алфавит цифр и основание. Основание позиционной системы Основные определения Любая позиционная система использует определённый алфавит цифр и основание. Основание позиционной системы счисления — количество различных цифр, используемых для изображения чисел в данной системе счисления. За основание системы можно принять любое натуральное число — два, три, четыре и т. д. Следовательно, возможно бесчисленное множество позиционных систем: двоичная, троичная, четверичная и т. д. 6

Позиционные системы счисления Позиция цифры в числе называется разрядом. Разряд числа возрастает справа налево, Позиционные системы счисления Позиция цифры в числе называется разрядом. Разряд числа возрастает справа налево, от младших разрядов к старшим. Например: 7

Как порождаются целые числа в позиционных системах счисления? Продвижением цифры называют замену её следующей Как порождаются целые числа в позиционных системах счисления? Продвижением цифры называют замену её следующей по величине. Целые числа в любой системе счисления порождаются с помощью правила счета: Для образования целого числа, следующего за любым данным целым числом, нужно продвинуть самую правую цифру числа; если какая-либо цифра после продвижения стала нулем, то нужно продвинуть цифру, стоящую слева от неё. Применяя это правило, запишем первые десять целых чисел в двоичной системе: 0, 10, 11, 100, 101, 110, 111, 1000, 1001; в троичной системе: 0, 1, 2, 10, 11, 12, 20, 21, 22, 100; в пятеричной системе: 0, 1, 2, 3, 4, 10, 11, 12, 13, 14; в восьмеричной системе: 0, 1, 2, 3, 4, 5, 6, 7, 10, 11. 8

Для общения с компьютером специалисты используют следующие системы счисления: двоичная (используются цифры 0, 1); Для общения с компьютером специалисты используют следующие системы счисления: двоичная (используются цифры 0, 1); восьмеричная (используются цифры 0, 1, . . . , 7); шестнадцатеричная (для первых целых чисел от нуля до девяти используются цифры 0, 1, . . . , 9, а для следующих чисел — от десяти до пятнадцати — в качестве цифр используются символы A, B, C, D, E, F). 9

 Запись в позиционных системах счисления первых двух десятков целых чисел 10 -я 2 Запись в позиционных системах счисления первых двух десятков целых чисел 10 -я 2 -я 8 -я 16 -я 0 0 10 1010 12 A 1 1 11 1011 13 B 2 10 2 2 12 1100 14 C 3 11 3 3 13 1101 15 D 4 100 4 4 14 1110 16 E 5 101 5 5 15 1111 17 F 6 110 6 6 16 10000 20 10 7 111 7 7 17 10001 21 11 8 1000 10 8 18 10010 22 12 9 1001 11 9 19 10011 23 13 10

Преимущества и недостаток двоичной системы счисления Люди предпочитают десятичную систему. Компьютеры используют двоичную систему Преимущества и недостаток двоичной системы счисления Люди предпочитают десятичную систему. Компьютеры используют двоичную систему потому, что она имеет ряд преимуществ перед другими системами: для ее реализации нужны технические устройства с двумя устойчивыми состояниями (есть ток — нет тока, намагничен — не намагничен и т. п. ), а не, например, с десятью, — как в десятичной; представление информации посредством только двух состояний надежно и помехоустойчиво; возможно применение аппарата булевой алгебры для выполнения логических преобразований информации; двоичная арифметика намного проще десятичной. Недостаток двоичной системы — быстрый рост числа 11 разрядов, необходимых для записи чисел.

Алгоритм перевода целого числа из десятичной системы счисления в любую другую позиционную систему счисления Алгоритм перевода целого числа из десятичной системы счисления в любую другую позиционную систему счисления 1. Последовательно выполнить деление исходного целого десятичного числа и получаемых целых частных на основание системы (на 2, 8 или 16), до тех пор, пока не получим частное равное 0. 2. Получить исходное двоичное, восьмеричное или шестнадцатеричное число, для чего записать полученные остатки в обратной последовательности. 12

Пример перевода целого числа из десятичной системы счисления в любую другую позиционную систему счисления Пример перевода целого числа из десятичной системы счисления в любую другую позиционную систему счисления Переведем число 75 из десятичной системы в двоичную, восьмеричную и шестнадцатеричную: Ответ: 7510 = 1 001 0112 = 1138 = 4 B 16. 13

Алгоритм перевода дробных десятичных чисел из десятичной системы счисления в любую другую позиционную систему Алгоритм перевода дробных десятичных чисел из десятичной системы счисления в любую другую позиционную систему счисления 1. Последовательно выполнить умножения исходной десятичной дроби и получаемых десятичных дробей на основание системы счисления (2, 8 или 16) до тех пор, пока не получим нулевую дробную часть или не будет достигнута требуемая точность вычислений. 2. Получить искомую двоичную, восьмеричную или шестнадцатеричную дробь, записав полученные целые части произведения в прямой последовательности. 14

Примеры перевода дробного десятичного числа из десятичной системы счисления в другие позиционные системы счисления Примеры перевода дробного десятичного числа из десятичной системы счисления в другие позиционные системы счисления Перевод дробного десятичного числа в дробное двоичное 0, 65625 x 2 1, 31250 x 2 0, 62500 x 2 1, 25000 x 2 0, 50 x 2 1, 00 Ответ: 0, 6562510=0, 101012 Перевод дробного десятичного числа в дробное восьмеричное 0, 65625 x 8 5, 25000 x 8 2, 00000 Ответ: 0, 6562510=0, 528 Перевод дробного десятичного числа в дробное шестнадцатеричное 0, 65625 x 16 3, 93750 + 6, 5625 10, 50000 x 16 8, 00000 Ответ: 0, 6562510=0, A 816 Для чисел, имеющих как целую, так и дробную части, перевод из десятичной системы счисления в другую осуществляется отдельно для целой и дробной частей по правилам, указанным выше. 15

Примеры перевода числа из двоичной (восьмеричной, шестнадцатеричной) системы счисления в десятичную 16 Примеры перевода числа из двоичной (восьмеричной, шестнадцатеричной) системы счисления в десятичную 16

Почему в компьютерах используются восьмеричная и шестнадцатеричная системы счисления? Двоичная система, удобная для компьютеров, Почему в компьютерах используются восьмеричная и шестнадцатеричная системы счисления? Двоичная система, удобная для компьютеров, для человека неудобна из-за ее громоздкости и непривычной записи. Перевод чисел из десятичной системы в двоичную и наоборот выполняет машина. Однако, чтобы профессионально использовать компьютер, следует научиться понимать слово машины. Для этого и разработаны восьмеричная и шестнадцатеричная системы. 17

Перевод чисел из двоичной системы счисления в восьмеричную Для записи восьмеричных чисел используются восемь Перевод чисел из двоичной системы счисления в восьмеричную Для записи восьмеричных чисел используются восемь цифр, то есть, в каждом разряде числа возможны восемь вариантов записи: i 3 8=2 , т. к. 8=2 , то i=3 бита Каждый разряд восьмеричного числа содержит три бита. Таким образом, для перевода двоичного числа в восьмеричное, двоичное число нужно разбить на группы по три цифры. 18

Перевод целого и дробного двоичного числа в восьмеричное Перевод целых чисел Для перевода целого Перевод целого и дробного двоичного числа в восьмеричное Перевод целых чисел Для перевода целого двоичного числа в восьмеричное нужно двоичное число разбить на группы по три цифры (триады) справа налево; если в последней левой группе окажется меньше чем три разряда, то необходимо её дополнить слева нулями. Затем следует триады заменить на восьмеричные числа. Пример: 1010012=518 Перевод дробей Для перевода дробного двоичного числа в восьмеричное нужно двоичное число разбить на триады слева направо; если в последней правой группе окажется меньше разрядов, то необходимо её дополнить справа нулями. Затем следует триады заменить на восьмеричные числа. Пример: 0, 1001012=0, 458 19

Перевод чисел из двоичной системы счисления в шестнадцатеричную Для записи шестнадцатеричных чисел используются 16 Перевод чисел из двоичной системы счисления в шестнадцатеричную Для записи шестнадцатеричных чисел используются 16 цифр, то есть. в каждом разряде числа возможны 16 вариантов записи: i 4 16=2 , т. к. 16=2 , то i=4 бита Каждый разряд шестнадцатеричного числа содержит четыре бита. Таким образом, для перевода двоичного числа в шестнадцатеричное, двоичное число нужно разбить на группы по четыре цифры. 20

Перевод целого и дробного двоичного числа в шестнадцатеричное Перевод целых чисел Для перевода целого Перевод целого и дробного двоичного числа в шестнадцатеричное Перевод целых чисел Для перевода целого двоичного числа в шестнадцатеричное нужно двоичное число разбить на группы по четыре цифры (тетрады) справа налево; если в последней левой группе окажется меньше чем четыре разряда, то необходимо её дополнить слева нулями. Затем следует тетрады заменить на шестнадцатеричные числа. Пример: 1010012 001010012=2916 Перевод дробей Для перевода дробного двоичного числа в шестнадцатеричное нужно двоичное число разбить на тетрады слева направо; если в последней правой группе окажется меньше разрядов, то необходимо её дополнить справа нулями. Затем следует тетрады заменить на шестнадцатеричные числа. Пример: 0, 1101012 0, 110101002=0, D 416 21

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

Перевод чисел из восьмеричной и шестнадцатеричной систем счисления в двоичную Для этого необходимо цифры Перевод чисел из восьмеричной и шестнадцатеричной систем счисления в двоичную Для этого необходимо цифры числа преобразовать в группы двоичных чисел. Для перевода из восьмеричной системы счисления в двоичную каждую цифру числа нужно преобразовать в группу из трёх двоичных разрядов (триаду), а при преобразовании шестнадцатеричного числа - в группу из четырёх разрядов (тетраду). Примеры Преобразуем дробное восьмеричное число 0, 478 в двоичную систему счисления: 0, 478= 0, 1001112; Преобразуем целое шестнадцатеричное число AB 16 в двоичную систему счисления: AB 16=101010112. 23

Сводная таблица переводов целых чисел из одной системы счисления в другую Таблица 1 24 Сводная таблица переводов целых чисел из одной системы счисления в другую Таблица 1 24

Продолжение таблицы 1 25 Продолжение таблицы 1 25

Арифметические операции в позиционных системах счисления Основные арифметические операции: сложение вычитание умножение деление 26 Арифметические операции в позиционных системах счисления Основные арифметические операции: сложение вычитание умножение деление 26

Правила выполнения основных арифметических операций в десятичной системе счисления Сложение Вычитание Умножение столбиком Деление Правила выполнения основных арифметических операций в десятичной системе счисления Сложение Вычитание Умножение столбиком Деление углом Эти правила применимы ко всем другим позиционным системам счисления. 27

Сложение чисел в двоичной системе счисления Таблица сложения одноразрядных двоичных чисел: 0 + 0 Сложение чисел в двоичной системе счисления Таблица сложения одноразрядных двоичных чисел: 0 + 0 = 0 0 + 1 = 1 1 + 0 = 1 1 + 1 = 10 (При сложении двух единиц происходит переполнение разряда и производится перенос в старший разряд). Примеры: 1). 1002 2). 1102 3). 111012 + 112 + 10012 1112 10012 1001102 Проверка примера 2): разряды 2 1 0 разряды 1 0 число 1102=1· 22+1· 21+0· 20=610; число 112=1· 21+1· 20=310; 610+310=910; разряды 3 2 1 0 число 10012=1· 23+ 0· 22+0· 21+1· 20=910. Сложение выполнено правильно. 28

Вычитание чисел в двоичной системе счисления Таблица вычитания одноразрядных двоичных чисел: 0 - 0 Вычитание чисел в двоичной системе счисления Таблица вычитания одноразрядных двоичных чисел: 0 - 0 = 0 0 - 1 = 11 (При вычитании из меньшего числа (0) 1 - 0 = 1 большего (1) производится заём из старшего 1 - 1 = 0 разряда. Заём обозначен 1 с чертой). · · Примеры: 1). 102 2). 1102 3). 110112 4). 110002 - 12 - 112 12 112 101002 101012 Проверка примера 2): разряды 2 1 0 разряды 1 0 число 1102=1· 22+1· 21+0· 20=610; число 112=1· 21+1· 20=310; 610 -310=310; разряды 1 0 число 112=1· 21+1· 20=310. Вычитание выполнено правильно. 29

Умножение чисел в двоичной системе счисления Таблица умножения одноразрядных двоичных чисел: 0 · 0 Умножение чисел в двоичной системе счисления Таблица умножения одноразрядных двоичных чисел: 0 · 0 = 0 0 · 1 = 0 1 · 0 = 0 1 · 1 = 1 Пример: 1102 112 + 1102 100102 30

Деление чисел в двоичной системе счисления. Арифметические операции в восьмеричной и шестнадцатеричной системах счисления. Деление чисел в двоичной системе счисления. Арифметические операции в восьмеричной и шестнадцатеричной системах счисления. Операция деления выполняется по алгоритму, подобному алгоритму выполнения операций деления в десятичной системе счисления. Пример: 1102 11 102 0 Арифметические операции в этих системах выполняются также как в двоичной, необходимо только помнить, что перенос в следующий разряд при сложении и заём из старшего разряда при вычитании определяется величиной основания системы счисления. Примеры: 378 258 648 9 C 16 7816 2416 Для проведения арифметических операций над числами, выраженными в различных системах счисления, необходимо предварительно перевести их в одну и ту же систему счисления. 31

Представление в компьютере целых чисел Целые числа могут представляться в компьютере со знаком или Представление в компьютере целых чисел Целые числа могут представляться в компьютере со знаком или без знака. Целые числа без знака Обычно занимают в памяти компьютера один или два байта. В однобайтовом формате принимают значения от 0000 2 до 11112. В двухбайтовом формате - от 000000002 до 111111112. Диапазоны значений целых чисел без знака Формат числа в байтах Запись с порядком Обычная запись 1 0. . . 28 -1 0. . . 255 2 0. . . 216 -1 0. . . 65535 Диапазон 32

Примеры представления в компьютере целых чисел а) число 7210 = 10010002 в однобайтовом формате: Примеры представления в компьютере целых чисел а) число 7210 = 10010002 в однобайтовом формате: б) это же число в двухбайтовом формате: в) число 65535 в двухбайтовом формате: 33

Представление в компьютере целых чисел Целые числа со знаком Обычно занимают в памяти компьютера Представление в компьютере целых чисел Целые числа со знаком Обычно занимают в памяти компьютера один, два или четыре байта, при этом самый левый (старший) разряд содержит информацию о знаке числа. Диапазоны значений целых чисел со знаком Формат числа в байтах Диапазон Запись с порядком Обычная запись 1 -27. . . 27 -1 -128. . . 127 2 -215. . . 215 -1 -32768. . . 32767 4 -231. . . 231 -1 -2147483648. . . 2147483647 34

Целые числа со знаком Рассмотрим особенности записи целых чисел со знаком на примере однобайтового Целые числа со знаком Рассмотрим особенности записи целых чисел со знаком на примере однобайтового формата, при котором для знака отводится один разряд, а для цифр абсолютной величины – семь разрядов. В компьютерной технике применяются три формы записи (кодирования) целых чисел со знаком: прямой код; обратный код; дополнительный код. Обратный и дополнительный код применяются особенно широко, так как позволяют упростить конструкцию арифметико-логического устройства компьютера (АЛУ) путем замены разнообразных арифметических операций операцией сложения. 35

Три формы записи (кодирования) целых чисел со знаком Положительные числа в прямом, обратном и Три формы записи (кодирования) целых чисел со знаком Положительные числа в прямом, обратном и дополнительном кодах изображаются одинаково - двоичными кодами с цифрой 0 в знаковом разряде. Например: Отрицательные числа в прямом, обратном и дополнительном кодах имеют разное изображение. 1. Прямой код. В знаковый разряд помещается цифра 1, а в разряды цифровой части числа — двоичный код его абсолютной величины. Например: 36

Три формы записи (кодирования) целых чисел со знаком (продолжение). 2. Обратный код. Получается инвертированием Три формы записи (кодирования) целых чисел со знаком (продолжение). 2. Обратный код. Получается инвертированием всех цифр двоичного кода абсолютной величины числа, включая разряд знака: нули заменяются единицами, а единицы — нулями. Например: 3. Дополнительный код. Получается образованием обратного кода с последующим прибавлением единицы к его младшему разряду. Например: Обычно отрицательные десятичные числа при вводе в машину автоматически преобразуются в обратный или дополнительный двоичный код и в таком виде хранятся, перемещаются и участвуют в операциях. При выводе таких чисел из машины происходит обратное преобразование в отрицательные десятичные числа. 37

Представление в компьютере вещественных чисел Система вещественных чисел в математических вычислениях предполагается непрерывной и Представление в компьютере вещественных чисел Система вещественных чисел в математических вычислениях предполагается непрерывной и бесконечной, т. е. не имеющей ограничений на диапазон и точность представления чисел. Однако в компьютерах числа хранятся в регистрах и ячейках памяти с ограниченным количеством разрядов. Вследствие этого система вещественных чисел, представимых в машине, является дискретной (прерывной) и конечной. При написании вещественных чисел в программах вместо привычной запятой принято ставить точку. Для отображения вещественных чисел, которые могут быть как очень маленькими, так и очень большими, используется форма записи чисел с порядком основания системы счисления. Например, десятичное число 1. 25 в этой форме можно представить так: 1. 25. 100 = 0. 125. 101 = 0. 0125. 102 =. . . или так: 12. 5. 10 -1 = 125. 0. 10 -2 = 1250. 0. 10 -3 =. . 38

Представление в компьютере вещественных чисел Любое число N в системе счисления с основанием q Представление в компьютере вещественных чисел Любое число N в системе счисления с основанием q можно записать в виде N = M. qp, где M — множитель, содержащий все цифры числа (мантисса), а p — целое число, называемое порядком. Такой способ записи чисел называется представлением числа с плавающей точкой. Если "плавающая" точка расположена в мантиссе перед первой значащей цифрой, то при фиксированном количестве разрядов, отведённых под мантиссу, обеспечивается запись максимального количества значащих цифр числа, то есть максимальная точность представления числа в машине. Из этого следует: Мантисса должна быть правильной дробью, у которой первая цифра после точки (запятой в обычной записи) отлична от нуля: 0. 12 <= |M| < 1. Если это требование выполнено, то число называется нормализованным Мантиссу и порядок q-ичного числа принято записывать в системе с основанием q, а само основание — в десятичной системе. Примеры нормализованного представления: Десятичная система Двоичная система 753. 15 = 0. 75315. 103; -101. 01 = -0. 10101. 211 (порядок 112 = 310) - 0. 000034 = -0. 34. 10 -4; 0. 000011 = 0. 11. 2 -100 (порядок -1002 = -410). 39

Представление в компьютере вещественных чисел Вещественные числа в компьютерах различных типов записываются по-разному, тем Представление в компьютере вещественных чисел Вещественные числа в компьютерах различных типов записываются по-разному, тем не менее, все компьютеры поддерживают несколько международных стандартных форматов, различающихся по точности, но имеющих одинаковую структуру следующего вида: Здесь порядок n-разрядного нормализованного числа задается в так называемой смещенной форме: если для задания порядка выделено k разрядов, то к истинному значению порядка, представленного в дополнительном коде, прибавляют смещение, равное (2 k-1 - 1). Например, порядок, принимающий значения в диапазоне от -128 до +127, представляется смещенным порядком, значения которого меняются от 0 до 255. Использование смещенной формы позволяет производить операции над порядками, как над беззнаковыми числами, что упрощает операции сравнения, сложения и вычитания порядков, а также упрощает операцию сравнения самих нормализованных чисел. 40

Представление в компьютере вещественных чисел Чем больше разрядов отводится под запись мантиссы, тем выше Представление в компьютере вещественных чисел Чем больше разрядов отводится под запись мантиссы, тем выше точность представления числа. Чем больше разрядов занимает порядок, тем шире диапазон от наименьшего отличного от нуля числа до наибольшего числа, представимого в машине при заданном формате. Стандартные форматы представления вещественных чисел: 1) одинарный — 32 -разрядное нормализованное число со знаком, 8 -разрядным смещенным порядком и 24 -разрядной мантиссой (старший бит мантиссы, всегда равный 1, не хранится в памяти, и размер поля, выделенного для хранения мантиссы, составляет только 23 разряда). 2) двойной — 64 -разрядное нормализованное число со знаком, 11 -разрядным смещенным порядком и 53 -разрядной мантиссой (старший бит мантиссы не хранится, размер поля, выделенного для хранения мантиссы, составляет 52 разряда). 3) расширенный — 80 -разрядное число со знаком, 15 -разрядным смещенным порядком и 64 -разрядной мантиссой. Позволяет хранить ненормализованные числа. Следует отметить, что вещественный формат с m-разрядной мантиссой позволяет абсолютно точно представлять m-разрядные целые числа, т. е. любое двоичное целое число, содержащее не более m разрядов, может 41 быть без искажений преобразовано в вещественный формат.