Числа в форме с фиксированной точкой

Глава 13. Типы и форматы операндов

Машинные команды оперируют данными, которые принято назы­вать операндами. К наиболее общим (базовым) типам операндов можно отнести:

адреса;

числа;

символы;

логические данные.

Для каждого типа данных в компьютере предусмотрены опреде­ленные форматы.

Числовая информация

Среди цифровых данных можно выделить две группы:

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

- вещественные типы для представления рациональных чисел.

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

Числа в форме с фиксированной точкой

Представление числа X в форме с фиксированной точкой (ФТ), которую иногда называют также естественной формой, включает в себя знак числа и его модуль в q-ичном коде. Здесь q — основание системы счисления или база. Для современных компьютеров характерна двоичная система (q=2), но существовали также восьмерич­ная (q=8) или шестнадцатеричная (q=16) системы счисления. Знак положительного числа кодируется двоичной цифрой 0, а знак отрицательно­го числа — цифрой 1.

Числам с фиксированной точкой соответствует запись вида X = ±an-1…a0a-1a-2…a-r. Отрицатель­ные числа обычно представляются в дополнительном коде. Разряд кода числа, в ко­тором размещается знак, называется знаковым разрядом кода. Разряды, где располагаются значащие цифры числа, называются цифровыми разрядами кода. Знаковый разряд размещается левее старшего цифрового разряда. Положение точки оди­наково для всех чисел и в процессе решения задачи не меняется. Хотя точка и фик­сируется, в коде числа она никак не выделяется, а только подразумевается.

В об­щем случае разрядная сетка для размещения чисел в форме с фиксированной точкой имеет вид, представленный на рис. 14.1, где k разрядов используются для записи целой части числа и r разрядов — для дробной части.

Номер разряда k-1 k-2   r r-1  
Вес разряда 2k-1 2k-2 20 2-1 2-2 2-r
  Целая часть Дробная часть

Рис. 14.1. Формат представления чисел с фиксированной точкой

Если число является смешанным (содержит целую и дробную части), оно обрабатываются как целое, хотя и не является таковым (в этом случае применяют тер­мин масштабируемое целое). Обработка смешанных чисел в компьютерах встречается крайне редко. Как правило, используются компьютеры с дробной (n = 0) либо целочисленной (r=0) арифметикой.

При фиксации точки перед старшим цифровым разрядом (рис. 14.2) могут быть представлены только правильные дроби. Для ненулевых чисел возможны два варианта представления (нулевому значению соответствуют нули во всех разря­дах): знаковое и беззнаковое. Фиксация точки перед старшим разрядом в настоящее время практически не встречается.

При фиксации точки после младшего разряда представимы лишь целые чис­ла. Это наиболее распространенный способ, поэтому в дальнейшем понятие чисел в формате с фиксированной точкой будет связываться исключительно с целыми числами, а операции с числами в формате с фиксированной точкой будут характеризоваться как целочисленные. Форматы целых чисел со знаком и без знака представлены на рис. 14.2 и 14.3.

Номер разряда n-1 n-2 n-3      
Вес разряда 2n-1 2n-2 2n-3 22 21 20
Диапазон значений 0<=Х<=2n - 1

Рис. 14.2. Представление целых чисел без знака в формате с фиксированной точкой

Номер разряда n-1 n-2 n-3      
Вес разряда знак 2n-2 2n-3 22 21 20
Диапазон значений -2n-1<=Х<=+2n-1 - 1

Рис. 14.3. Представление целых чисел со знаком в формате с фиксированной точкой

Целые числа применяются также для работы с адресами. Адреса обрабатываются как целые числа без знака.

Диапазон представления 32-разрядных целых чисел со знаком составляет все целые числа от -231 до 231 – 1, то есть всего 232 различных чисел.

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


Понравилась статья? Добавь ее в закладку (CTRL+D) и не забудь поделиться с друзьями:  



double arrow
Сейчас читают про: