Формат с фиксированной точкой
-10,11002
Ячейка опер.памяти, в которой будет храниться число в форме фикс. запятой имеет вид:
0(1) | 0, |
Из рисунка видно, что число состоит из 3-х цифр в целой части, и из 4-х в дробной. Диапазон представления чисел здесь очень маленький. Поэтому, если в результате арифметической операции получится число, выходящее за допустимый диапазон, т.е. превышающее количество отведенных ячеек, произойдет переполнение разрядной сетки ячейки памяти, чего в ЭВМ недопустимо.
Поскольку такое представление чисел неудобно, то решили хранение чисел организовывать в виде правильных дробей (числитель<знаменатель).
В современных ЭВМ естественная форма представления используется как вспомогательная и только для целых чисел.
Запятая в таких числах фиксируется строго в конце и остается строго фиксированной.
Все целые числа в компьютере разделяются на числа без знака (только положительные) и числа со знаком (положительные и отрицательные).
Множество целых чисел, представимых в памяти компьютера, ограничено. Диапазон значений зависит от размера ячеек памяти, используемых для их хранения. В n-разрядной ячейке может храниться 2n различных целых чисел.
Формат с фиксированной точкой | ||
Формат | Количество разрядов разрядной сетки (n) | Диапазон значений |
Целые числа без знака | 1 байт (n=8) - полуслово | 0..255 |
2 байта (n=16) - слово | 0..65536 | |
Целые числа со знаком | 2 байта (n=16) - слово | -32768..32367 |
4 байта (n=32) – двойное слово | -2147483648..2147483648 |
Обычно занимают в памяти компьютера один, два или четыре байта. В однобайтовом формате принимают значения от 000000002 до 111111112 (диапазон значений 0..255) В двухбайтовом формате (слово) - от 00000000 000000002 до 11111111 111111112 (диапазон значений 0..65535).
Чтобы получить внутреннее представление целого положительного числа X, хранящегося в n-разрядном машинном слове, необходимо:
1. Перевести число X в двоичную систему счисления;
2. Полученный результат дополнить слева незначащими нулями до n разрядов.
Например, представить число 2110 в однобайтовой разрядной сетке.
2110=101012
Для внутреннего представления целого отрицательного числа (-X) используются машинные коды: прямой, обратный и дополнительный коды.
Последние две формы применяются особенно широко, так как позволяют упростить конструкцию арифметико-логического устройства компьютера путем замены разнообразных арифметических операций операцией сложения.
Прямой код образуется из абсолютного значения числа и кода знака (нуль или единица), например: A10=+10; B10= - 4 ;
A2= +1010; B2= - 100;
Aпр= 0:1010; Bпр=1:100
Двоеточием здесь обозначается условная граница, отделяющая знаковый разряд от значащих цифр.
Обратный код Хобр получается следующим образом:
· для положительных чисел обратный код равен прямому коду, т.е. Xобр = Xпр
· для отрицательных чисел в знаковом разряде числа остается единица, а в цифровых (значащих) разрядах нули заменяются единицами, а единица – нулями, т.е. происходит инверсия.
Напр. - 410= -1002. имеет вид:
- прямой код
- обратный код
Дополнительный код Хдоп получается следующим образом:
· для положительных чисел дополнительный код равен прямому коду, т.е. Xдоп = Xпр
· для отрицательных чисел дополнительный код получается из обратного кода Хобр путем прибавления единицы к самому правому (т.е. младшему) разряду, т.е. Хдоп= Хобр +1, т.е.
Хдоп = 11111002
Обычно отрицательные десятичные числа при вводе в машину автоматическипреобразуются в обратный или дополнительный двоичный код и в таком виде хранятся, перемещаются и участвуют в операциях. При выводе таких чисел из машины происходит обратное преобразование в отрицательные десятичные числа.
Например. Получить внутреннее представление числа -2110 в двухбайтовой разрядной сетке.
1. Переведем модуль числа -21 в двоичную систему счисления: 2110=101012
2. Получим внутреннее представление модуля числа:
1000 0000 0001 0101 – прямой код
3. Найдем обратный код числа, заменив в прямом коде 0 на 1 и 1 на 0 (кроме знакового разряда):
1111 1111 1110 1010 – обратный код
4. Найдем дополнительный код числа, прибавив к обратному коду единицу:
|
1
1111 1111 1110 1011 – дополнительный код
5. Впишем дополнительный код в разрядную сетку:
Дата добавления: 2015-10-19; просмотров: 2829;