Выполнение арифметических операций в двоичном формате с использованием только побитовых операторов [дубликат]
Возможный дубликат:
Как я могу умножить и разделить, используя только сдвиг и добавление битов?
Я должен написать функции для выполнения двоичного вычитания, умножения и деления без использования арифметических операторов, кроме управления циклом. Я'раньше я только писал код на 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