-
如何使用位运算实现一个加法呢?
今天面试遇到这样一个奇葩的要求,使用位运算实现一个加法,那么如何实现呢?
今天收到小伙伴的信息,
面试官讲一个题目:“编写一个加法函数,函数中不能使用四则运算符号,需使用位运算”
实现一个加法的功能,具体的实现思路如下所示:
实现思路:
借助异或运算的特性----无进位加法
借助与运算---相同为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
转自:http://www.java265.com/JavaMianJing/202112/16391886662074.html
最新更新
带有参数的装饰器
类装饰器
django中的auth模块与admin后台管理
python的日期处理
字符串常用方法
基本数据类型概述
python-map()函数基本用法
python带你实现任意下载AcFun视频数据~
bbs项目之注册功能
变量的定义和使用
三大常用数据库事务详解之三:事务运行
三大常用关系型数据库事务详解之二:基
三大关系型数据库事务详解之一:基本概
MongoDB常用命令(2)
MongoDB基本介绍与安装(1)
SQLServer触发器调用JavaWeb接口
SQL Server索引的原理深入解析
SqlServer2016模糊匹配的三种方式及效率问题
SQL中Truncate的用法
sqlserver 多表关联时在where语句中慎用tri
VB.NET中如何快速访问注册表
ASP.NET中图象处理过程详解
Vue(1)Vue安装与使用
JavaScript 语言入门
js将一段字符串的首字母转成大写
纯原生html编写的h5视频播放器
H5仿原生app短信验证码vue2.0组件附源码地
TypeScript(4)接口
TypeScript(3)基础类型
TypeScript(2)WebStorm自动编译TypeScript配置