Вещественные числа. Рассмотрим представление короткого вещественного числа
Рассмотрим представление короткого вещественного числа. Такое число имеет длину 32 бита и содержит три поля:
± | E | M |
1 бит | 8 бит | 23 бита |
Первое поле из одного бита определяет знак числа (знак "плюс" кодируется нулём, "минус" – единицей). Остальная биты, отведённые под хранение вещественного числа, разбивается на два поля: машинный порядок E и мантиссу M, которая по модулю меньше единицы. Каждое представимое вещественное число A (кроме числа 0.0) может быть записано в виде: A=±1.M*2E–127. Такие вещественные числа называются нормализованными: первый сомножитель удовлетворяет неравенству 1.0 £ 1.M < 2.0. Нормализация необходимо для однозначного представления вещественного числа в виде двух сомножителей. Нулевое число представляется нулями во всех позициях, за исключением, быть может, первой позиции знака числа.
В качестве примера переведём десятичное число –13.25 во внутреннее машинное представление. Сначала переведём его в двоичную систему счисления:
–13.2510 = -1101.012
Затем нормализуем это число:
-1101.012 = -1.101012*23
Следовательно, мантисса будет иметь вид 101010000000000000000002 , осталось вычислить машинный порядок: 3 = E-127; E = 130 = 128 + 2 = 1000000102 . Теперь, учитывая знак, получаем вид внутреннего машинного представления числа –13.2510:
1100 0001 0101 0100 0000 0000 0000 00002 = C150000016
Шестнадцатеричные числа в языке Ассемблера принято записывать с буквой h на конце:
C150000016 = C1500000h
Таков формат короткого вещественного числа. Согласно его виду, E изменяется от 0 до 255, следовательно, диапазон порядков коротких вещественных чисел равен 2–127..2128 » 10–38..1038. Как и для целых чисел, машинное представление которых мы рассмотрим чуть позже, число представимых вещественных чисел конечно. Заметим также, что, в отличие от целых чисел, в представлении вещественных чисел используется симметричная числовая ось, то есть для любого положительного числа найдётся соответствующее ему отрицательное (и наоборот).
Некоторые комбинации нулей и единиц в памяти, отведённой под вещественное число, собственно числа не задают, а используются для служебных целей. В частности, E=255 обозначает специальное значение "не число" (NAN – not a number). При попытке производить арифметические операции над такими "числами" возникает аварийная ситуация. Например, значение "не число" может быть присвоено вещественной переменной при её порождении, если эта переменная не имеет начального значения (как говорят, не инициализирована). Такой приём позволяет избежать тяжёлых семантических ошибок, которые могут возникать при работе с неинициализированными переменными, которые при порождении, как правило, имеют случайные значения.
Отметим ещё две специальные комбинации нулей и единиц, которые будем обозначать ±e. Эти значения присваиваются результату операции с вещественными числами, если этот результат, хотя и не равен нулю, но не представим в виде вещественного числа, то есть ±e меньше самого маленького представимого положительного вещественного числа и больше самого большого отрицательного.
Аналогично существуют комбинации битов, задающие специальные значения ±¥. Эти значения выдаются в качестве результата, если этот результат такой большой по абсолютной величине, что не представим среди множества машинных вещественных чисел.
Центральный процессор "разумно"(по крайней мере с точки зрения математика) производит арифметические операции над такими "числами". Например, пусть A любое представимое вещественное число, тогда
A ± e = A; ±e * A = ±e; A * ±¥ = ±¥; и т.д. [6]
Для любознательных студентов заметим, что существует нетрадиционное построение математического анализа, в котором, как и в нашей ЭВМ, бесконечно малые величины ±e определяются не в виде пределов, как в обычном анализе, а существуют в виде "настоящих" вещественных чисел. Изложение нетрадиционного анализа можно посмотреть в книгах [13,14].
При изучении архитектуры ЭВМ вещественные числа не будут представлять для нас большого интереса и поэтому (а также из-за недостатка времени) операции над вещественными числами мы изучать не будем.
Дата добавления: 2015-10-05; просмотров: 1436;