zoukankan      html  css  js  c++  java
  • 计算机实现加法

    计算机实现加法 只需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;
                }
            }
  • 相关阅读:
    基于Twisted的简单聊天室
    小学题的python实现
    初识Go(8)
    初识Go(7)
    初识Go(6)
    初识Go(5)
    初识Go(4)
    初识Go(3)
    初识Go(2)
    初识Go(1)
  • 原文地址:https://www.cnblogs.com/zhengguiping--9876/p/15339998.html
Copyright © 2011-2022 走看看