每日一题 No.18 a-b(位操作符)

    xiaoxiao2021-04-16  45

    本题要求:

    昨天写了2个数相加,进来让我们来用位操作符写2个数相减吧,给定2个数a,b,计算a-b

    输入格式:

    a b

    输出格式:

    a-b的值

    输入样例:

    155 152

    输出样例:

    3

    解题思路 :

    相减就是加上这个数的相反数 用按位取反,再加1,就是这个数的相反数啦。

    代码 :

    #include <iostream> using namespace std; int add(int a, int b) { if (b == 0) { return a; } int s = a ^ b; int c = (a & b) << 1; return add(s, c); } int del(int a, int b) { return add(a, add(~b, 1)); } int main() { int a, b; cin >> a >> b; cout << del(a, b) << endl; return 0; }
    转载请注明原文地址: https://ju.6miu.com/read-672807.html

    最新回复(0)