今天面试遇到这样一个奇葩的要求,使用位运算实现一个加法,那么如何实现呢?
今天收到小伙伴的信息,
面试官讲一个题目:“编写一个加法函数,函数中不能使用四则运算符号,需使用位运算”
实现一个加法的功能,具体的实现思路如下所示:
实现思路: 借助异或运算的特性----无进位加法 借助与运算---相同为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
版权声明
本文仅代表作者观点,不代表本站立场。
本文系作者授权发表,未经许可,不得转载。