Решение дифференциальных уравнений Примеры решения типовых задач Курс практики по математике Инженерная графика Машиностроительное черчение История дизайна Архитектура ПК Лабораторные работы Курс лекций по физике теплоэнергетика
USB-накопитель на флеш-памяти Кэш центрального процессора Дисковая подсистема ПК Понятие архитектуры и структуры ЭВМ Внешние интерфейсы Жесткий магнитный диск Визуализация трехмерных изображений

Курс лекций по персональному компьютеру

Представление чисел в ЭВМ. Числа с фиксированной и плавающей точкой

Существует 2 способа предcтавления чисел: с плавающей и фиксированной точкой.

Общий вид представления числа с фиксированной точкой: Стек TCP/IP Пользовательские процессы и уровни управления в ИВС

Зн

2-1

...

2-n

 

Зн

2-1

...

2-15

 

 

< 2 байта, 16 разрядов >

Зн

2-1

...

2-31

 

< 4 байта, 32 разрядa >

 

В общем случае фиксированная точка (естественная форма представления чисел) характеризуется значением m (m = соnst). В этом случае для всех чисел, с которыми оперирует машина, положение точки постоянно. Можно увидеть, что при m = 0 все числа, с которыми оперирует машина, меньше 1 и представлены в виде правильных дробей.

В формате с фиксированной точкой разрядная сетка имеет n + 1 разряд:

f3.gif (791 bytes)

xmax0.111...1 - 2n

xmin0.000...1 * 2n

0 x2n

При использовании чисел с фиксированной точкой может возникнуть переполнение.

Представление чисел в форме с плавающей точкой.

Такое представление числа соответствует нормальной форме записи:

¦ (x1p-1 + x2p-2 + ... + xnp-n)

Здесь p-n - мантисса, pm - порядок.

При использовании формата с плавающей точкой пользуются понятием нормализованного представления чисел.

Нормализованным числом называется число, мантисса которого удовлетворяет следующим неравенствам:

f5.gif (565 bytes)

Зн.п

2ln-2

...

20

Зн.m

2-1

2lm

<       Код порядка       >

<    Код мантиссы     >

<     Длина поля порядка          >

<     Длина поля мантиссы     >

Kn - код порядка, Km - код мантиссы, ln - длина поля порядка, lm - длина поля мантиссы

Знак '-' кодируется единицей, знак '+' - нулем.

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

Алгебраическое представление чисел. Прямой, обратный и дополнительный код

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

Представление целых чисел в беззнаковых целых типах.

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

Представление целых чисел в знаковых целых типах.

Для представления со знаком самый старший (левый) бит отводится под знак числа, остальные разряды - под само число. Если число положительное, то в знаковый разряд помещается 0, если отрицательное - 1. Например, в байте можно представить знаковые числа от -128 до 127.

Прямой код числа.

Представление числа в привычной форме "знак"-"величина", при которой старший разряд ячейки отводится под знак, а остальные - под запись числа в двоичной системе, называется прямым кодом двоичного числа. Например, прямой код двоичных чисел 1001 и -1001 для 8-разрядной ячейки равен 00001001 и 10001001 соответственно.

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

Обратный код отрицательного числа образуется из прямого кода, заменой его цифр на их дополнения до величины q-1. Код знака сохраняется без изменения

Дополнительный код числа.

Дополнительный код положительного числа равен прямому коду этого числа. Дополнительный код отрицательного числа m равен 2k-|m|, где k - количество разрядов в ячейке.

Как уже было сказано, при представлении неотрицательных чисел в беззнаковом формате все разряды ячейки отводятся под само число. Например, запись числа 243=11110011 в одном байте при беззнаковом представлении будет выглядеть следующим образом:

1 1 1 1 0 0 1 1

При представлении целых чисел со знаком старший (левый) разряд отводится под знак числа, и под собственно число остаётся на один разряд меньше. Поэтому, если приведённое выше состояние ячейки рассматривать как запись целого числа со знаком, то для компьютера в этой ячейке записано число -13 (243+13=256=28).

Но если это же отрицательное число записать в ячейку из 16-ти разрядов, то содержимое ячейки будет следующим:

1  1 1 1 1 1 1 1 1 1 1 1 0 0 1 1

Знаковый разряд

Возникает вопрос: с какой целью отрицательные числа записываются в виде дополнительного кода и как получить дополнительный код отрицательного числа?

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

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

Алгоритм получения дополнительного кода отрицательного числа.

Для получения дополнительного k-разрядного кода отрицательного числа необходимо

модуль отрицательного числа представить прямым кодом в k двоичных разрядах;

значение всех бит инвертировать:все нули заменить на единицы, а единицы на нули(таким образом, получается k-разрядный обратный код исходного числа);

к полученному обратному коду прибавить единицу.

Пример:

Получим 8-разрядный дополнительный код числа -52:

00110100 - число |-52|=52 в прямом коде

11001011 - число -52 в обратном коде

11001100 - число -52 в дополнительном коде

Можно заметить, что представление целого числа не очень удобно изображать в двоичной системе, поэтому часто используют шестнадцатеричное представление:

1100 1100

 С С 

Понятие процессор является многоплановым. В самом общем случае это вычислительное устройство. Существует несколько типов процессоров, например центральный процессор (ЦП), процессор ввода-вывода (ПВВ), вспомогательный процессор (сопроцессор), цифровой процессор обработки сигналов (ЦПОС) и т.д. Обычно, если не подразумевается определенная специализация, то имеется в виду именно ЦП. Это основной рабочий элемент ЭВМ. В его состав входят арифметико-логическое устройство и устройство управления. Иногда в состав ЦП включают ту часть оперативной памяти, которая используется для хранения команд и данных при текущем исполнении процессором
Курс лекций по персональному компьютеру