Сб. Июл 27th, 2024

Операцию вычитания отдельно можно не описывать, так как любое вычитание можно заменить на сложение с числом противоположного знака, т.е.

а — b = а + (-b).

Получаемые при этом отрицательные слагаемые следует перевести в дополнительный код. Если же b < 0 и (-b) > 0, исходный дополнительный код нужно перевести в прямой для |b| и выполнять операцию a + |b|.

Операции сравнения целых чисел обычно реализуются с помощью вычитания. Так, сравнение на равенство или неравенство двух чисел может быть сведено к сравнению их разности с машинным нулем (числом, все разряды которого нулевые). Сравнения на неравенство (<, >, <, >) таким же образом могут быть сведены к проверке знака у разности этих чисел (т.е. к анализу значения самого левого бита разности).

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

От content