美文网首页
(位运算)不用加减乘数实现加法

(位运算)不用加减乘数实现加法

作者: 壹豪 | 来源:发表于2019-08-13 10:18 被阅读0次

题目描述

写一个函数,求两个整数之和,要求在函数体内不得使用+、-、*、/四则运算符号。

思路

不让用四则运算符,用位运算即可
首先看十进制是如何做的: 5+7=12,三步走
第一步:相加各位的值,不算进位,得到2。
第二步:计算进位值,得到10. 如果这一步的进位值为0,那么第一步得到的值就是最终结果。
第三步:重复上述两步,只是相加的值变成上述两步的得到的结果2和10,得到12。
因此位运算也按这个思路即可

代码

public class Solution {
    public int Add(int num1,int num2) {
        int a=(num1&num2)<<1;//计算进位,5+7=10,10是进位
        int b=num1^num2;//相加和,不算进位,5+7=2,10属于进位被剔除
        while(a!=0){//判断是否有进位,有进位让进位和相加和循环,直到无进位
            num1=a;num2=b;//进位赋值给num1,相加和赋值给num2
            a=(num1&num2)<<1;//计算num1和num2的进位
            b=num1^num2;//计算num1和num2的相加和
        }
        return b;//进位为0时,返回相加和
    }
}

相关文章

  • (位运算)不用加减乘数实现加法

    题目描述 写一个函数,求两个整数之和,要求在函数体内不得使用+、-、*、/四则运算符号。 思路 不让用四则运算符,...

  • 溢出判断 基本运算方法

    符号位也要参加运算减法:那就是进行变补运算 然后进行加法运算 补码的相加减 原码的相加减 标准移码的相加减两个数的...

  • js加减乘数运算

  • 网页制作加法运算

    加法运算 这是我写的一个简单的加法运算法则,可以根据这个加法变换出多种,比如加减乘除都能去实现,可以说非常实用。如...

  • 机试常用算法和题型-大数专题

    大数专题 字符加减关系,实现任意长度整数相加 大数加法,进阶转换版 大数浮点数加法 大数运算之阶乘

  • 第三讲 算术逻辑单元(Arithmetic Logic Unit

    内容要点:逻辑运算,二进制加减法运算,ALU的实现 算术运算和逻辑运算 加法指令的编码示例1:add $8,$9,...

  • C语言的基本运算

    算术运算 C语言一共有34种运算符,包括了常见的加减乘除运算 加法运算+ 除开能做加法运算,还能表示正号:+5、+...

  • 【加法笔记系列】JS 加法器模拟

    JS 加法器模拟,实现 半加器 全加器 波纹进位加法器 全部代码 补码 & 减法 常规位运算 位运算 & 简单的 ...

  • 06-基本运算

    一、算术运算 C语言一共有34种运算符,包括了常见的加减乘除运算 1.加法运算+ 除开能做加法运算,还能表示正号:...

  • 使用位运算实现加法运算

    简书上的文章已经不再维护,有兴趣阅读其他文章,或一起交流的朋友,请移步 我的博客:punmy.cn 原文 位操作实...

网友评论

      本文标题:(位运算)不用加减乘数实现加法

      本文链接:https://www.haomeiwen.com/subject/idfvjctx.html