Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Evm.docx
Скачиваний:
2
Добавлен:
01.07.2025
Размер:
908 Кб
Скачать
☆

3. Представление чисел с фиксированной и плавающей запятой: диапазон, точность.

Машинное (автоматное) изображение числа это есть представление числа в разрядной сетке цифрового автомата. Условное обозначение машинного изображения числа, например, A будем представлять как [A].

Из-за ограниченной длины машинных слов, множество чисел, которые можно представить в машине конечное. Сравнение различных форм представления чисел в компьютерах обычно производится на основе оценкидиапазона и точности представления числа.

В повседневной практике наиболее распространенной является форма представления чисел в виде последовательности цифр, разделенной запятой на целую и дробную части. Числа, представленные в такой форме, называются числами с естественной запятой или числами в естественной форме. В естественной форме число записывается в естественном натуральном виде, например 12560 - целое число, 0,003572 - правильная дробь, 4,89760 - неправильная дробь.

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

Необходимость в указании положения запятой отпадает, если место запятой в разрядной сетки машины заранее фиксировано раз и навсегда. Такая форма представления чисел называется представлением с фиксированной запятой (точкой).

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

В знаковую часть записывается информация о знаке числа. Принято, что знак положительного числа "+" изображается символом 0, а знак отрицательного числа "-" изображается символом 1.

4. Прямой обратный и дополнительный коды. Выполнение

арифметических операций в прямом обратном и дополнительном коде.

(Тут немного теории чтоб на уши подсесть ему, а все операции на семинарах были).

Представление положительных и отрицательных чисел в памяти компьютера. Прямой и дополнительный код числа

Прямой код

Прямой код – это представление числа в двоичной системе счисления, при котором первый (старший) разряд отводится под знак числа. Если число положительное, то в левый разряд записывается 0; если число отрицательное, то в левый разряд записывается 1.

 Таким образом, в двоичной системе счисления, используя прямой код, в восьмиразрядной ячейке (байте) можно записать семиразрядное число. Например:

0 00011010 - положительное число

 1 00011010 – отрицательное число

 Количество значений, которые можно поместить в семиразрядной ячейке со знаком в дополнительном разряде равно 256. Это совпадает с количеством значений, которые можно поместить в восьмиразрядную ячейку без указания знака. Однако диапазон значений уже другой, ему принадлежат значения от -128 до 127 включительно (при переводе в десятичную систему счисления).

При этом в вычислительной технике прямой код используется почти исключительно для представления положительных чисел.

 Для отрицательных чисел используется так называемый дополнительный код. Это связано с удобством выполнения операций над числами электронными устройствами компьютера.

Дополнительный код

 В дополнительном коде, также как и прямом, первый разряд отводится для представления знака числа. Прямой код используется для представления положительных чисел, а дополнительный – для представления отрицательных. Поэтому, если в первом разряде находится 1, то мы имеем дело с дополнительным кодом и с отрицательным числом.

 Все остальные разряды числа в дополнительном коде сначала инвертируются, т.е. заменяются противоположными (0 на 1, а 1 на 0). Например, если 1 0001100 – это прямой код числа, то при формировании его дополнительного кода, сначала надо заменить нули на единицы, а единицы на нули, кроме первого разряда. Получаем 1 1110011. Но это еще не окончательный вид дополнительного кода числа.

 Далее следует прибавить единицу к получившемуся инверсией числу:

1 1110011 + 1 = 1 1110100

 В итоге и получается число, которое принято называть дополнительным кодом числа.

 Причина, по которой используется дополнительный код числа для представления отрицательных чисел, связана с тем, что так проще выполнять математические операции. Например, у нас два числа, представленных в прямом коде. Одно число положительное, другое – отрицательное и эти числа нужно сложить. Однако просто сложить их нельзя. Сначала компьютер должен определить, что это за числа. Выяснив, что одно число отрицательное, ему следует заменить операцию сложения операцией вычитания. Потом, машина должна определить, какое число больше по модулю, чтобы выяснить знак результата и определиться с тем, что из чего вычитать. В итоге, получается сложный алгоритм. Куда проще складывать числа, если отрицательные преобразованы в дополнительный код. Это можно увидеть на примерах ниже.

Операция сложения положительного числа и отрицательного числа, представленного в прямом коде

Прямой код числа 5: 0 000 0101

 Прямой код числа -7: 1 000 0111

Два исходных числа сравниваются. В разряд знака результата записывается знак большего исходного числа.

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

_ 000 0111

  000 0101

-------------

  000 0010

После выполнения операции учитывается первый разряд. Результат операции 1 000 0010, или -210.

Операция сложения положительного числа и отрицательного числа, представленного в дополнительном коде

Прямой код числа 5: 0 000 0101

 Прямой код числа -7: 1 000 0111

Формирование дополнительного кода числа -7.

 Прямой код : 1 000 0111

 Инверсия : 1 111 1000

 Добавление единицы: 1 111 1001

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

  0 000 0101

+ 1 111 1001

  --------------

  1 111 1110

Проверка результата путем преобразования к прямому коду.

 Дополнительный код: 1 111 1110

 Вычитание единицы : 1 111 1101

 Инверсия : 1 000 0010 (или -210)

Арифметические операции в двоичной системе счисления

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

Сложение

Сложение одноразрядных двоичных чисел выполняется по следующим правилам:

0 + 0 = 0

1 + 0 = 1

0 + 1 = 1

1 + 1 = 10

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

Сложим для примера два любых двоичных числа:

  1101

+  101

 ------

 10010

Вычитание

Вычитание одноразрядных двоичных чисел выполняется по следующим правилам:

0 - 0 = 0

1 - 0 = 1

0 - 1 = (заем из старшего разряда) 1

1 - 1 = 0

Пример:

  1110

-  101

  ----

  1001

Умножение

Умножение одноразрядных двоичных чисел выполняется по следующим правилам:

0 * 0 = 0

1 * 0 = 0

0 * 1 = 0

1 * 1 = 1

 Пример:

  1110

*   10

------

+ 0000  

 1110

------

 11100

Деление

Деление выполняется так же как в десятичной системе счисления:

1110 | 10

     |----

10   | 111

----

 11

 10

----

  10

  10

----

   0

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]