计算机实现加法
计算机实现加法 只需XOR和AND操作
static void Main(string[] args) { //目标:用位运算实现4+5的加法 //4 + 5 = 9 //4的二进制0000 0100 //5的二进制0000 0101 //1.先异或 2.与操作(判断是否进位) //0000 0100 0000 0100 //0000 0101 0000 0101 //--------- --------- //0000 0001 0000 0100 (如果值不等于0表示有进位) // --------- // 0000 1000 (有进位就左移) //3.拿①和②的结果再异或 4.拿①和②的结果与操作(判断是否进位) //0000 0001 0000 0001 //0000 1000 0000 1000 //--------- --------- //0000 1001 0000 0000 (如果值等于0表示没有进位) //最后的结果就是③的结果0000 1001,十进制就是9 //代码实现 int sum = add(4, 5); Console.WriteLine("sum = {0}",sum); } //用位运算实现加法 static int add(int a, int b) { int tmp = a ^ b; int iAnd = a & b; bool isCarry = iAnd == 0; if (!isCarry) { //如果进位就左移 iAnd = iAnd << 1; return add(iAnd, tmp); //这里递归调用一下 } else { return tmp; } }