今天面试遇到这样一个奇葩的要求,使用位运算实现一个加法,那么如何实现呢?

java面试王 Java面经 发布时间:2021-12-11 10:10:21 阅读数:20053 1
今天收到小伙伴的信息, 面试官讲一个题目:“编写一个加法函数,函数中不能使用四则运算符号,需使用位运算” 实现一个加法的功能,具体的实现思路如下所示:
实现思路:
   借助异或运算的特性----无进位加法
   借助与运算---相同为1
 --------首先将两个异或运算,得到无进位的值
 --------然后借助与运算的结果(向右移动一位--进位)
         使用递归循环运行以上的步骤,直到与运算的结果为0(无进位),则停止
例:
package com.java265.other;
public class Test10 {
	public static void main(String[] args) {
		System.out.println(add(10, 20));
	}
	/*
	 * java265.com 使用位运算实现一个加法
	 */
	private static int add(int a,int b)
	{
		  int r1 =0;
		  int r2 =0;
           do {
        	   r1 = a ^b;
        	   r2 = (a&b)<<1;
        	   a = r1;
        	   b = r2; 	   
			} while (r2 != 0);
			return r1;
	}
}
------运行以上代码,将输出以下信息----
30
版权声明

本文仅代表作者观点,不代表本站立场。
本文系作者授权发表,未经许可,不得转载。

本文链接: https://www.Java265.com/JavaMianJing/202112/16391886662074.html

最近发表

热门文章

好文推荐

Java265.com

https://www.java265.com

站长统计|粤ICP备14097017号-3

Powered By Java265.com信息维护小组

使用手机扫描二维码

关注我们看更多资讯

java爱好者