java实现不用加减乘除做2个数的加法
来源:互联网 发布:linux下解压zip包 编辑:程序博客网 时间:2024/05/22 00:55
public class Solution {
public int Add(int num1,int num2) {
while (num2!=0) {
int temp = num1^num2;
num2 = (num1&num2)<<1;
num1 = temp;
}
return num1;
}
public int Add(int num1,int num2) {
while (num2!=0) {
int temp = num1^num2;
num2 = (num1&num2)<<1;
num1 = temp;
}
return num1;
}
}
例如 5+7 = 12
5 -> 0101
7 -> 0111
(0101&0111)<<1 =1010;//表示二进制进位了
0111^0101 = 0010//或是查看两个数哪些二进制位只有一个为1
//step1:按位与是查看两个数哪些二进制位都为1,这些都是进位位,结果需左移一位,表示进位后的结果
//step2:异或是查看两个数哪些二进制位只有一个为1,这些是非进位位,可以直接加、减,结果表示非进位位进行加操作后的结果
//step3:num1&num2是查看有没有进位位了,如果有,需要重复step1、step2;如果没有,保留n1、n2上二进制为1的部分,用或将之合为一
第二次
1010 ^ 0010 = 1000
1010 & 0010 =00100
第三次
1000^ 0100= 1100
1000& 0100 =0000
0 0
- java实现不用加减乘除做2个数的加法
- 不用加减乘除做加法(Java实现)
- Java实现不用加减乘除做加法
- 不用加减乘除做加法java实现
- 用Java实现不用加减乘除做加法操作
- 不用加减乘除做加法
- 不用加减乘除做加法
- 不用加减乘除做加法
- 不用加减乘除做加法
- 不用加减乘除做加法
- 不用加减乘除做加法
- 不用加减乘除做加法
- 不用加减乘除做加法
- 不用加减乘除做加法
- 不用加减乘除做加法
- 不用加减乘除做加法
- 不用加减乘除做加法
- 不用加减乘除做加法
- 总结
- RabbitMQ-理解消息通信-交换器和绑定
- jQuery总结2(DOM操作和遍历)
- hive 如何去掉重复数据,显示第一条
- Flash同步学习笔记~
- java实现不用加减乘除做2个数的加法
- jQuery 选择器大全 图表 [转自w3c,个人收藏]
- 为mysqlmtop开启慢查询功能以及工具组件功能
- C++学习第10篇-运算符重载
- 决策树算法
- 切换语言时,默认的输入法请为对应输入法
- RabbitMQ-理解消息通信-虚拟主机和隔离
- PhotoView 放大缩小图片,支持gif格式
- Android带清除功能的编辑框(ClearEditText)