260 likes | 507 Views
Арифметика ЭВМ. Системы счисления. Системы счисления. Под системой счисления будем понимать способ представления любого числа при помощи некоторого алфавита символов, которые называются цифр ами.
E N D
Арифметика ЭВМ Системы счисления
Системы счисления Под системой счисления будем понимать способ представления любого числа при помощи некоторого алфавита символов, которые называются цифрами. Система счисления (с/с) называется позиционной , если одна и та же цифра имеет различное значения, которое соответствует позиции цифры в последовательности цифр, которые составляют число. Количество S различных цифр, которые используются в позиционной с/с, называется ее основой. Цифры, которые используются для записи чисел, называются базисными цифрами. В общем случае в позиционной с/с с основанием S любое число х можно представить в виде полинома с основанием S:
Позиции цифр, которые отсчитываются от разделителя целой и дробной части, называются разрядами (в математике разделитель – запятая, в программировании – точка). В позиционной системе счисления значение каждого разряда больше, чем значение соседнего справа разряда в число раз, равное основе S с/с. В 2-й с/с (S=2)используют цифры 0, 1; тогда любое число можно записать в форме полинома следующим образом: Пример:
При выполнении арифметических действий над числами применяют таблицы сложения, вычитания и умножения :
Перевод чисел из одной с/с в другую Общий метод перевода небольших чисел из одной системы счисления в другую: расписать число полиномом: и выполнить действия в новой системе счисления Таблица чисел в различных системах счисления
Правило 1 Чтобы перевести число из 16-й с/с в 2-ю с/с, необходимо все цифры расписать в 2-й с/с по 4 разряда (из 8-й с/с в 2-ю с/с – по 3 разряда), а потом откинуть незначащие нули. Это правило можно вывести строго. Например для 16-й с/с: Пример (36)16=(00110110)2=(110110)2
Правило 2 Чтобы перевести число из 2-й с/с в с/с с основой 2к, к=3, 4, необходимо от точки налево и направо выделить группы по к цифр (дополняя при необходимости нулями крайние группы) и каждой группе поставить в соответствие конкретную цифру новой системы. Например: Из 2-й с/с в 8-ю с/с (1101111001,1101)2=(001101111001,110100)2=(1571,64)8 Из 2-й с/с в 16-ю с/с (1101111001,1101)2=(001101111001,110100)2=(379,D)16 Перевод чисел из с/с p=2kв q=2n можно совершать через 2-ю с/с
Перевод целых положительных чисел из с/сс основой «p» в с/с с основой «q» Пусть (х)р – целое положительное число в с/с с основанием «p». Так как: То вытекает следующее правило перевода: Правило 3: Чтобы перевести целое число из с/с с основой «р» в с/с с основой «q», надо выполнять следующие действия. В с/с и исходной основой «р» разделить х на q. Первый остаток – младшая цифра (а0). Затем полученное частное разделить на q. Остаток есть следующая цифра (а1)Новое частное делим на q. Процесс продолжаем, до тех пор, пока не получим частное, меньшее, чем q. Частное есть старшая цифра (an). Полученные остатки записываем в с/с с основанием q.
Перевод правильных дробей из с/сс основанием «p» в с/с с основанием «q» Пусть (yp) – правильная дробь в с/с с основанием «р». Имеем: Правило 4: Чтобы перевести правильную дробь из с/с с основанием «p» в с/с с основанием «q», надо исходное число умножить на q (в с/с с исходной основой «p»). Полученная целая часть есть цифра (а-1). Полученную дробную часть умножить на q. Полученная целая часть есть цифра (a-2) и т.д. В конце перевода записать полученные цифры в новой с/с с основой q. Остановить процесс, если: Получили остаток, равный нулю; Получили остаток, встречающийся ранее (период); Получили необходимое количество цифр переводимого числа.
Формы представления данных Числа можно представлять в форме с фиксированной точкой и в форме с плавающей точкой. Представление числа с плавающей точкой в общем случае имеет вид: Где q – мантисса числа, sp – характеристика числа х (s – основа характеристики, р - порядок). Мантисса – дробь с фиксированной точкой со знаком, порядок – целове число со знаком. Порядком определяется положение точки в числе х. Чтобы получить число в форме с плавающей точкой, нужно перевести его в нужную с/с, а затем записать его по правилу:
Примеры На примере 10-й с/с хорошо понятно, что арифметические действия над числами с плавающей запятой требуют, кроме выполнения операций над мантиссой, определенных операций над порядками (сравнение, сложение, вычитание).
Формы представления данных в ПК Информация в памяти ЭВМ хранится и обрабатывается в двоичной системе счисления. Неделимой наименьшей единицей хранения информации является один бит, т.е.. двоичный разряд, который может принимать значения 0 или первого Группа из 8 битов называется байтом. Вся оперативная память состоит из байтов, которые нумеруются с 0. Последовательность в 1024 байта называется 1килобайт (1 кбайт = 1024 байта); 1 мегабайт = 1024 Кбайт, 1 гигабайт = 1024 Мбайт, 1 терабайт = 1024 Гбайт, 1 петабайт = 1024 Тбайт, 1экзабайт = 1024 Пбайта. Адресом любого данного считается адрес (номер) самого первого байта поля памяти, выделенной для его хранения. Форма записи данных в памяти ЭВМ называется внутренним представлением данных. В ЭВМ применяют две формы представления чисел: с фиксированной и с плавающей точкой.
Хранение чисел с фиксированной точкой Для хранения информации в оперативной памяти служит ячейка. Существуют ЭВМ, в которых ячейка имеет постоянную длину, в ПК – переменную. Наименьшая длина – 1 байт. Есть ячейки в 2, 4, 6, 8, 10 байт. Ячейка в 2 байта называется словом, в 4 – двойным словом, в 1 байт – полусловом. Будем считать, что байты размещаются так (k=2, 4, 6, 8, 10):
При представлении чисел с фиксированной точкой местонахождение точки фиксируется в конкретном месте ячейки относительно разряда числа. Каждый бит имеет свой вес в байте. Если в байте точка зафиксирована справа и используется беззнаковая форма хранения целых положительных чисел, то биты имеют вес в соответствии со схемой: Для представления целых чисел используют два варианта: со знаком и без знака. В первом случае выделяют «знаковый» разряд (обычно крайний слева) и сохраняют там 0 («+») или 1 («-») Если местонахождение точки фиксируется перед старшим разрядом, то вес разрядов в байте будет другим: В этом формате могут быть числа – правильные дроби.
Хранение целых чисел Для представления целых числе в форме с фиксированной точкой со знаком в ЭВМ применяют прямой, обратный и дополнительный коды. Идея такова: код трактуется как число без знака, а диапазон чисел без знака разбивается на два поддиапазона. Один из них дает положительные числа, а другой – неотрицательные. Разбиение выполняется таким образом, чтобы принадлежность к диапазону определялась максимально просто. Очень удобно формировать коды так, чтобы значение старшего разряда показывало на знак числа
Прямой код двоичного числа G, который представляется в n-разрядной сетке (n=8, 16, 32) определяется как где, А – величина, равная весу старшего разряда сетки (для целых чисел А=2n-1). Фактически, в прямом коде сохраняется модуль числа, а в старшем разряде стоит знаковый бит: 0 – для положительных, 1 – для отрицательных чисел. Диапазон чисел в прямом коде: 0≤ G ≤ A – для положительных, старший разряд равен 0; 0≤ |G| ≤ A – для отрицательных, старший разряд равен 1.
Обратный код двоичного числа G, который представляется в n-разрядной сетке (n=8, 16, 32), определяется так где B – величина наибольшего числа без знака, которое размещается в n-разрядной сетке; B=2n-1– для целых чисел. Диапазон чисел в обратном коде: 0≤ |G| < B=2n-1. По этому определению обратный код отрицательного числа представляет собой дополнение модуля исходного числа к наибольшему числу без знака, которое размещается в разрядную сетку. Таким образом, получение обратного кода отрицательного числа сводится к получению инверсии (0 на 1, 1 на 0) n-разрядного кода модуля этого числа. Значит знаковый бит имеет 0 для положительного числа и 1 – для отрицательного. Недостатком такого способа является то, что числа 0 и (-0) имеют различное представление.
Дополнительный код двоичного числа G, которое представляется в n-разрядной сетке (n=8, 16, 32), определяется так Где С – величина, равная весу разряда, который размещается за старшим разрядом используемой разрядной сетки. Для целых чисел C=2n=B+1. Диапазон чисел в дополнительном коде 0 ≤ G ≤ A – для положительных, старший разряд равен 0; 0 ≤ |G| ≤ A – для отрицательных, старший разряд равен 1. Для целых отрицательных чисел В дополнительном коде хорошо выполняются операции сложения и вычитания целых чисел. Замечание: Когда происходит переполнение, то на это реагирует знаковый разряд
Алгоритм представления отрицательного числа в обратном коде Число переводится в 2-ю с/с; дополняется нулями до n разрядов; выполняется инверсия двоичных чисел; к коду прибавляется 1. Замечание: В компьютере целые положительные числа сохраняются в прямом, а целые отрицательные – в дополнительном коде.
Принципы хранения чисел в плавающей точкой Поскольку арифметические действия над числами с плавающей точкой кроме использования операций над мантиссой требуют определенных операций над порядками, из сводят к действиям над целыми положительными числами (без знака). К порядку р добавляют целое число – сдвиг. Обычно сдвиг A=2k-1, где k – число двоичных разрядов, которые используются для записи модуля порядка. Тогда рсм=р+А>0 называют характеристикой.
При фиксированном числе разрядов мантиссы любая величина представляется в ЭВМ с наибольшей возможной точностью нормализованным числом. Число x=q*spназывается нормализованным, если мантисса – правильная дробь: 1/s ≤ |q| < 1 В ПК используется другое условие нормализации числа: 1≤ |q| < 2. При этом условии старшую цифру можно не хранить. Значит, есть 2 формы нормализации мантиссы в 2-й с/с: А) Б)
Замечание 1: Данные, которые сохраняются в ЭВМ в форме с плавающей точкой, почти всегда представлены с погрешностью и только приблизительно равно исходному числу. Погрешность обусловлена ограниченностью на длину мантиссы (на количество разрядов). Замечание 2: Под порядок тоже отводится ограниченное количество разрядов, значит, диапазон чисел с плавающей точкой ограничен: min ≤ |x| ≤ max
Форматы чисел с плавающей точкой арифметического сопроцессора IBM PC/AT 8087 Расшифровка: Расшифровка:
Форматы чисел с плавающей точкой арифметического сопроцессора IBM PC/AT 8087 Расшифровка: Расшифровка:
Таблица чисел в различных системах счисления Возврат