OriginalGriff
Это зависит именно от того, что задается вашим домашним заданием: если вы должны написать multiply
функция, которая не использует оператор умножения, то есть несколько способов, которыми вы могли бы подойти к этому:
1) грубая сила и невежество. Х * Y так же, как добавление х к само й раз:
x * 0 = 0
x * 1 = x
x * 2 = x + x
x * 3 = x + x + x
...
Итак, найдите наименьшее из двух чисел и повторите это множество раз, добавив другое к общему числу.
2) немного больше утонченности. Помните логарифмы? бревно
н(x * y) = log
н(x) + журнал
н(год)
Таким образом, вы можете использовать встроенные в C математические функции для ведения журнала
10 x и y, добавьте затем, а затем анти-лог их, чтобы получить результат.
3) гораздо больше утонченности! Используйте битовый сдвиг и сложение в цикле для умножения. Целое число-это двоичное число, поэтому вы можете рассматривать каждый бит как множитель:
Умножение и деление двоичных чисел | умножение и деление[
^]- И число с 1 говорит вам, является ли наименьший значащий бит нулем или единицей, а два оператора сдвига << и >> умножают и делят на два.
Но... это твое домашнее задание, так что я не дам тебе никакого кода!