• 不用加减乘除做加法


    非常easy想到为二进制的与或非。

    加法分为三步:

    1 各位相加不进位 0 + 0 =0, 0+1 = 1,1+0=1,1+1=1,非常明显是异或运算

    2 进位 1+1 =10进位,其余均不进位 。进行左移动一位

    3 一直循环

    代码:

    #include <iostream>
    
    using namespace std;
    
    int sum(int data1,int data2){
    
    	int sum,carry;
    	do{
    		sum = data1 ^ data2;
    		carry = (data1 & data2)<<1;
    		data1 = sum;
    		data2 = carry;
    	}while(carry != 0);
    
    	return data1;
    }
    
    void main(){
    
    	cout <<sum(6,7);
    	
    }

    执行结果:


  • 相关阅读:
    互斥量
    读写锁
    死锁
    pthread
    线程
    守护进程
    信号捕捉
    信号集
    信号
    mmap
  • 原文地址:https://www.cnblogs.com/gccbuaa/p/6823675.html
Copyright © 2020-2023  润新知