Целые числа являются простейшими числовыми данными, с которыми оперирует ЭВМ. Для целых чисел существуют два представления: беззнаковое (только для неотрицательных целых чисел) и со знаком. Очевидно, что отрицательные числа можно представлять только в знаковом виде. Целые числа в компьютере хранятся в формате с фиксированной запятой.
Для представления в компьютере целых отрицательных чисел используют дополнительный код, который позволяет заменить арифметическую операцию вычитания арифметической операцией сложения, что существенной увеличивает скорость вычисления.
Представление числа в привычной для человека форме "знак" - "величина", при которой старший разряд ячейки отводится под знак (0 – ‘+’, 1 – ‘-‘), а остальные k-1 под цифры числа, называется прямым кодом.
Алгоритм получения дополнительного k-разрядного кода отрицательного числа:
1) Модуль числа представить прямым кодов в k двоичных разрядов
2) Значение всех разрядов инвертировать, тем самым получаем k-разрядный обратный код исходного числа
3) К полученному обратному коду, трактуемому как k-разрядное неотрицательное двоичное числа прибавить 1, тем самым получаем искомый дополнительный код.
Пример:
· Найти дополнительный код числа -10
1) |-10| прямой код модуля числа
2) обратный код
3) дополнительный код
· 8 – 10 = 8 + (дополнительный код (-10)) = -2
(8) + (-10) =
- =
(-2) Диапазон: [-2k-1; 2k-1-1]
Организация арифметических действий в ограниченном числе разрядов. Целочисленная арифметика.
При выполнении арифметических действий целочисленной K-разрядной арифметики возможно возникновение ситуаций, незнание которых может привести к неверному результату при выполнении верных алгоритмов.
- Старшие цифры результата, выходящие за опред-е кол-во разряда оказыв. утеряны.
- При сложении, умножении положительных чисел, имеющих знаковое представление, можно получить отриц. число.
Организация арифметических действий в ограниченном числе разрядов. Арифметика с плавающей точкой.
Сложение и вычитание
При сложении и вычитании предварительно выполняются подготовительная операция-выравнивание порядка.: мантисса числа с меньшим порядком сдвигается в своей ячейке вправо на кол-во разрядов равное разности порядков. После этой операции одноименные разряды мантисс оказываются расположенными в одноименных разрядах обоих ячеек. Теперь сложение и вычитание выполняются как и над числами с фиксированной запятой.
После операции над порядками и мантиссами получаем порядок и мантиссу результата, при этом мантисса может не удовлетворять ограничениям, накладываемым на мантиссу нормализованного числа. Следовательно, необходимо дополнительное преобразование результата-нормализация. В зависимости от величины получившейся мантиссы результата она сдвигается вправо или влево так, чтобы первая ее значащая цифра попала в первый разряд после запятой. Одновременно порядок результата увеличивается или уменьшается на число, равное величине сдвига.
Пример: Для мантиссы 5 разрядов,1 под порядок и по 2 разряда на знаки
23,619=0,23619 * 10^2
+ 0,071824=0,71824 * 10^(-1)
+ | + |
- | + | ||||||
+ | + |
+ | + |
+00071
Умножение и деление
При умножении двух вещественных чисел с плавающей запятой необходимо их порядки сложить, а мантиссы умножить.
При делении от порядка делимого отнимается порядок делителя, мантиссу делимого разделить на мантиссу делителя.
При необходимости выполнить нормализацию
Пример:
230 * 95*10^5
+ | + |
+ | + |
0,23 * 10^3
0,95 * 10^7
2185 3+7=10-переполнение порядка
Число не представимо
0,92*10^4 / 0,3*10^7
+ | + |
+ | + |
- | + |
Ответ 31(6)