美文网首页程序员
不用加减乘除实现加法

不用加减乘除实现加法

作者: 帅番茄 | 来源:发表于2017-08-20 10:39 被阅读0次
int sum(int a, int b)
{
    int exclusiveSum, carry;
    int num1 = a, num2 = b;
    do
    {
            exclusiveSum = num1 ^ num2;
        carry = (num1 & num2)<<1;

        num1 = exclusiveSum;
        num2 = carry;
    }while(num2 != 0)
    return exclusiveSum;
}
  • 其中 异或运算相当于对两个数进行 “不进位” 的加法,与运算并向左移一位得到两个数的加法进位,接下去重复上述过程,直到进位为零的时候结束。
  • 不使用 新的变量 实现 两个变量的交换
  1. 通过加减法
void exchange(int &a, int &b)
{
    a = a + b;
    b = a - b;
    a = a - b;
}
  1. 通过异或运算
void exchange(int &a, int &b)
{
    a = a ^ b;   
    b = a ^ b;   
    a = a ^ b;
}
  • 解说: 对同一个数进行两次异或运算 会 抵消掉
  • 如: a^b^b == a

相关文章

  • 不用加减乘除实现加法

    其中 异或运算相当于对两个数进行 “不进位” 的加法,与运算并向左移一位得到两个数的加法进位,接下去重复上述过程,...

  • [python2] 65 不用加减乘除做加法、减法

    1. 不用加减乘除做加法 2. 不用加减乘除做减法 1). 思路1 a - b = a + (-b) 因此可以使用...

  • Python实现不用加减乘除做加法

    题目描述: 写一个函数,求两个整数之和,要求在函数体内不得使用+、-、*、/四则运算符号。 本猪猪看见题目是毫无头...

  • 不用加减乘除做加法

    题目描述 写一个函数,求两个整数之和,要求在函数体内不得使用+、-、*、/四则运算符号。 分析 题目要求不能使用四...

  • 不用加减乘除做加法

    剑指 Offer 的一道题:求两个整数之和,不得使用 加 减 乘 除 四种运算符。其实仔细想一想,语言中除了这几种...

  • 不用加减乘除做加法

    题目描述 写一个函数,求两个整数之和,要求在函数体内不得使用+、-、*、/四则运算符号。 思路 递归采用 按位与 ...

  • 不用加减乘除做加法

    题目描述 写一个函数,求两个整数之和,要求在函数体内不得使用+、-、*、/四则运算符号。 示例 输入4 1输出5 ...

  • 不用加减乘除做加法

    题目描述写一个函数,求两个整数之和,要求在函数体内不得使用+、-、*、/四则运算符号。 方法一: 方法二:

  • 不用加减乘除做加法

    题目要求:写一个函数,求两个整数之和,要求在函数体内不得使用+、-、*、/四则运算符号。 仔细一看这题颇有意思,求...

  • 不用加减乘除做加法

    题目描述:写一个函数,求两个整数之和,要求在函数体内不得使用+、-、*、/四则运算符号。 思路:位运算,异或操作用...

网友评论

    本文标题:不用加减乘除实现加法

    本文链接:https://www.haomeiwen.com/subject/qrqfdxtx.html