Смекни!
smekni.com

Представление численной информации в ЭВМ. Системы счисления (стр. 3 из 4)

Таблица 4.1.

n 0 1 2 3 4 5 6 7 8 9 10 11 12
2n 1 2 4 8 16 32 64 128 256 512 1024 2048 4096

1. Число 100...00 = 2n.

n нулей

Необходимо знать наизусть десятичные значения чисел, представленных в таблице 4.1.

2. Число 111...11= 2n-1.

n единиц

3. Необходимо знать наизусть десятичные значения двоичных чисел от 0 до 31 включительно. Эти числа в дальнейшем будут называться “малыми числами”.

4. Двоичное число


А= аn-k+5 аn-k+4 аn-k+3 аn-k+2 аn-k+1 000...000

малое число k нулей равно а2k.

Пример. 11011000=11011х23 = 27 х 8 = 216.

Двоичное число

А= аn-k+5 аn-k+4 аn-k+3 аn-k+2 аn-k+1 00...00 b5b4b3b2b1= а х 2k + b

малое число a малое число b

k разрядов

Пример. 10110000101 = 1011 х 27 + 101 = 11 х 128 + 5 = 1413.

5. Если в n- разрядном числе много единиц и мало нулей, то для определения его количественного эквивалента можно из n разрядного числа, записанного одними единицами, вычесть малое число, в котором разряды со значением 1 соответствуют разрядам исходного числа с нулевым значением и наоборот.

Пример. 11111101001 соответствует

11111111111 = 211 - 1

10110 = 22

11111101001

т.е. 11111101001 = 2048 -1 - 10110 = 2047 - 22 = 2025.

6. Чтение двоичных дробей

А= 0,000...001 = 2-n

n-1 нулей

Дробь А = 0,111...111 = 1 - 2-k.

k единиц

Двоичная дробь читается по тем же правилам, что и десятичная: разряды справа от запятой читаются как целое число, которое является числителем; знаменатель читается как целое число, являющееся 2k , причем k - номер младшего разряда справа от запятой.

5. Формы представления двоичных чисел в ЭВМ

Машинное представление числа – это представление числа в разрядной сетке ЭВМ.

Машинное изображение числа условно обозначают [A].

При этом А=[A]kA,

где kA – масштабный коэффициент, величина которого зависит от формы представления числа в ЭВМ.

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

Если произвольное вещественное число А`=[A]kA, то такое число представлено в разрядной сетке машины точно. Если А`≠[A]kA, то произвольное вещественное число может быть представлено в машине приближенно или вообще не может быть представлено. При приближенном представлении вещественное число А` заменяется некоторым числом [А], принадлежащим множеству машинных чисел. Множеству машинных чисел принадлежат только числа, кратные двум, так как любые два попарно соседних машинных числа отличаются друг от друга на величину 2-n, где n - количество разрядов.

Аmin‹ |A| ‹ Amax

Если |A| ‹ Amin, такое число называют машинным нулем. Числа, большие чем Amax, не могут быть представлены. В этом случае говорят о переполнении разрядной сетки.

Существует три формы представления чисел в ЭВМ: естественная, с фиксированной запятой и нормальная (с плавающей запятой).

Естественной формой записи числа называется запись числа в виде полинома, представленного в сокращенном виде:

А= аnan-1 ... a1 a0 a--1 a--2 ... a--k

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

Если место запятой в разрядной сетке машины заранее фиксировано, то такое представление называется представлением с фиксированной запятой (точкой).

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

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

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

В ячейке машины с фиксированной перед старшим разрядом запятой число записывается в разрядную сетку в виде значащей части дроби со своим знаком, т. е. для записи n-значной дроби разрядная сетка должна содержать n + 1 разряд.

Разрядная сетка или формат числа в двоичной системе счисления имеет вид:

Запятая
Знак 2-1 2-2 2-n

n+1

Здесь n разрядов используют для изображения цифровой части числа и 1 – для знака.

Величины чисел, представляемых в машинах с фиксированной перед старшим разрядом запятой, лежат в пределах:

2-n ≤ |А| ≤ 1-2-n

В этом случае: |А|min=0,...01 = 2-n , а |А|max= 0,1...1= 1-2-n. (Запятая разделяет целую и дробную части).

Начиная с вычислительных машин 2-го поколения, форматы чисел в ЭВМ представляются кратными байту, т. е. n=8, или 16, 32.

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

Нередко запятую фиксируют после младшего разряда числа. Тогда все данные представляются в виде целых чисел. В этом случае также необходимо масштабирование исходных данных.

Веса разрядов в формате числа, содержащего n+1 разряд (1 знаковый) представлены на рисунке:

Знак 2n-1 2n -2 21 20

n+1

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

Знак числа обычно кодируется следующим образом: знаку «+» соответствует 0 в знаковом разряде, знаку «-» - 1.

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

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

В общем случае число можно представить в виде произведения целой степени основания системы и цифровой части, являющейся правильной дробью:

А= pma = pm ∑aipi-m. (i от -k до n),

где a – мантисса, m - порядок.

Формат числа, представленного в форме с плавающей запятой, имеет вид:

Знак пор. 2S-1 2S-2 20 Знак числа 2-1 2-n-1 2-n

порядок S+1разрядов мантисса n+1 разрядов

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

Представление числа с плавающей запятой можно проиллюстрировать на следующем примере:

987.54 =103* 0.98754,

987.54 =104* 0.098754,

987.54 =105*0.0098754.

В целях однозначного представления любого числа введено понятие “нормализованное число”. Нормализованным считается число А, мантисса которого удовлетворяет неравенству:

2-1 ≤ |а| ≤ 1-2-n

Другими словами, нормализованным считается то число, у которого старший разряд равен 1.

Диапазон представления порядка числа лежит в пределах: