计算机实现加法

 

计算机实现加法 只需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;
            }
        }

 

posted @ 2021-09-26 20:44  西瓜不懂柠檬的酸  Views(233)  Comments(0Edit  收藏  举报
levels of contents