Отрицательное деление на маленьком компьютере - PullRequest
0 голосов
/ 10 апреля 2020

Я всегда застреваю в oop, когда пытаюсь сделать деление с отрицательным числом в LM C. Для примера 10/2 даст мне 5, а -10 / -2 также сработает и даст 5. Проблема в том, что в делении для примера 10 / -2 и -10/2 ... 10 есть одно отрицательное число -2-2-2-2-2 = 0; -10--2--2--2--2--2--2 = 0, но -10-2-2-2-2-2 не равно 0. Я думал об абсолютном значении, но приносит мне нигде ... действительно в крайнем случае прямо сейчас. Если какой-нибудь светлый ум мог показать мне путь к просветлению и положить конец моим страданиям, пожалуйста.

1 Ответ

1 голос
/ 10 апреля 2020

Я не уверен, как вы это делаете (так как вы не разместили код), но обычный способ делить это повторное вычитание только величин (без знаков) с последующей корректировкой для знаков .

Например, с 10 / -2 просто используйте повторное вычитание двух из десяти (чтобы получить пять), затем отрегулируйте знак на основе оригинальных знаков. Если делитель и дивиденд имеют разные знаки, результат отрицательный. В противном случае результат неотрицательный.

...