C&C++   发布时间:2022-04-03  发布网站:大佬教程  code.js-code.com
大佬教程收集整理的这篇文章主要介绍了不使用’ – ‘运算符减去两个数字大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。
我尝试使用以下代码,但我无法理解为什么它给了我错误的答案.我正在计算2的补码并加上一个补.
#include <stdio.h>

int add(int a,int b) {
    while (a) {
        a = (a & b) << 1;
        b = a^b;
    }
    return b;
}

int sub(int a,int b) // add a with b's 2's complement.
{
    return (add(a,add(~b,1)));
}

int main() {
    int a,b,res;
    a = 3,b = 1;
    res = sub(a,b);
    printf("%d\n",res);
    return 0;
}

解决方法

@H_944_7@ 我使用了NullUserException建议的不同的add()函数,它现在可以工作:
int add(int a,int b)
{
  int x;
  x = a^b;

  while(a&b)
  {
    b = ((a&b)<<1);
    a = x;
    x = a^b;
    //b=(a^b);
  }

  return x;
}

大佬总结

以上是大佬教程为你收集整理的不使用’ – ‘运算符减去两个数字全部内容,希望文章能够帮你解决不使用’ – ‘运算符减去两个数字所遇到的程序开发问题。

如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。

本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。