Выполнение арифметических операций в двоичном формате с использованием только побитовых операторов [дубликат]

Возможный дубликат:

Как я могу умножить и разделить, используя только сдвиг и добавление битов?

Я должен написать функции для выполнения двоичного вычитания, умножения и деления без использования арифметических операторов, кроме управления циклом. Я'раньше я только писал код на Java, поэтому ямне тяжело оборачиваться вокруг этого.

Начиная с вычитания, мне нужно написать функцию с прототипом

int bsub(int x, int y)

Я знаю, что мне нужно конвертировать у в дваs дополняют, чтобы сделать его отрицательным и добавить его в x, но я знаю только, как это сделать, используя one 'с оператором дополнения ~ и добавив 1, но я могуt использовать оператор +.

Была предоставлена функция badd, и я смогу реализовать ее в bsub, если смогу выяснить, как сделать y отрицательным числом. Код для badd показан ниже. Заранее спасибо за любые советы.

int badd(int x,int y){

int i;

char sum;
char car_in=0;
char car_out;
char a,b;

unsigned int mask=0x00000001;
int result=0;

for(i=0;i

Ответы на вопрос(2)

Ваш ответ на вопрос