Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
29_Ae1.doc
Скачиваний:
6
Добавлен:
01.03.2025
Размер:
302.08 Кб
Скачать

38. Данные с фиксированной точкой

Данные с фиксированной точкой - это форма представления чисел в ЭВМ с постоянным положением запятой, отделяющей целую часть числа от дробной. В ЭВМ числа с фиксированной точкой являются одним из базовых типов. Если предположить, что после запятой идут одни нули, то сразу получим множество целых чисел. В результате чего числа с фиксированной запятой можно условно поделить на целочисленные и числа с дробной частью.

Положительные целые со знаком - это 0 и все положительные числа.

Отрицательные целые со знаком - это все числа, меньшие 0. Отличительным признаком числа со знаком является особая трактовка одного из битов поля, представляющего число. В случае, если бит равен 0, то число считается положительным и его значение вычисляется по обычным правилам. В случае, если этот бит равен 1, число считается отрицательным и предполагается, что оно записано в так называемом дополнительном коде.

Дополнительный код некоторого отрицательного числа представляет собой результат инвертирования (замены 1 на 0 и наоборот) каждого бита двоичного числа, плюс единица. К примеру рассмотрим десятичное число -185(10). Модуль данного числа в двоичном представлении равен 10111001(2). Сначала нужно дополнить это значение слева нулями до нужной размерности - байта, слова и т.д. В нашем случае дополнить нужно до структуры размером в 2 байта (в IBM-370 это полуслово, а в Intel - слово), так как диапазон представления знаковых чисел в байте составляет -128..127. Следующее действие – получить двоичное дополнение. Для этого все разряды двоичного числа нужно инвертировать:

0000000010111001(2)в 1111111101000110(2)

Теперь прибавляем единицу:

1111111101000110(2)+ 0000000000000001(2) = 1111111101000111(2)

Результат преобразования равен 1111111101000111(2). Именно так и представляется число -185(10) в компьютере. При работе с числами со знаком от вас наверняка потребуется умение выполнять обратное действие - имея двоичное дополнение числа, определить значение его модуля. При этом необходимо сделать два действия:

Выполнить инвертирование битов двоичного дополнения.

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

К примеру, определим модуль двоичного представления числа -185(10)= 1111111101000111(2):

1111111101000111(2)- Инвертируем биты - 0000000010111000(2)

Добавляем двоичную единицу:

0000000010111000(2)+ 0000000000000001(2)= 0000000010111001(2)= |-185|

39. Внутреннее представление чисел с плавающей точкой.

ЧИСЛО С ПЛАВАЮЩЕЙ ТОЧКОЙ [floating-point number]. Рациональное число, представленное в форме, содержащей явно заданный порядок числа, например 0.12345-Ю3. В общем случае Ч. с п. т. имеет вид M-qP, где М -число с фиксированной точкой, называемое мантиссой, q — основание системы счисления, р — число целого типа, называемое порядком. В приведенном примере 0.12345— мантисса, 10— основание десятичной системы счисления, 3 — порядок. Запись числа в форме Ч. с п. т. может быть сделана многими способами. Например, то же число может быть записано как 0.012345-104 и 1.2345-102. Чтобы избежать такой неоднозначности, обычно применяется нормализованная форма 0.12345-103. В языках программирования Паскаль, Фортран и др. вместо основания системы 10 в десятичных Ч. с п. т. пишут букву Е или е, а знак умножения после мантиссы не ставится, например 0.123Е—5 или 0.123е—5 вместо 0.123-10"5. Арифметические операции над Ч. с п. т. выполняются отдельно над мантиссой и порядком, например, при умножении таких чисел их мантиссы перемножаются, а порядки складываются. Поэтому при размещении Ч. с п. т. в памяти ЭВМ оно разбивается на мантиссу и порядок, которые раздельно помещаются в отведенные для них части ячейки памяти. Этот способ называется полулогарифмическим представлением чисел. Конечно, при размещении чисел в памяти ЭВМ используется двоичное представление мантиссы и порядка. См. представление чисел с плавающей точкой

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