Java不用算数运算符怎么实现求和
发表于:2026-11-01 作者:千家信息网编辑
千家信息网最后更新 2026年11月01日,这篇文章主要介绍"Java不用算数运算符怎么实现求和"的相关知识,小编通过实际案例向大家展示操作过程,操作方法简单快捷,实用性强,希望这篇"Java不用算数运算符怎么实现求和"文章能帮助大家解决问题。
千家信息网最后更新 2026年11月01日Java不用算数运算符怎么实现求和
这篇文章主要介绍"Java不用算数运算符怎么实现求和"的相关知识,小编通过实际案例向大家展示操作过程,操作方法简单快捷,实用性强,希望这篇"Java不用算数运算符怎么实现求和"文章能帮助大家解决问题。

题目说了不能用算数运算符,那么我们就只能从 逻辑运算符 和 移位运算符 入手了。
我们知道 ^ (异或)操作是对两个数进行无进位求和,如果两个数相加本来就不产生进位,那么该和就是两数之和。 这就是解题的关键所在。一般来说,两数相加是会产生进位的,而要得到正确的和,应该是在 "无进位之和" 的基础上加上进位,那我们首先应该得到进位。我们知道,当两个数对应位置都为1的情况下,才会有进位的产生,即对应位置 A&B==1的条件下,就可以得到每一位的进位,但是进位是将这个1加到对应的更高一位,所以我们将得到的进位整体进行左移一位,再和之前得到的 "无进位之和" 相加,就可以得到两数之和。
我们发现这里就可以无限套娃了,要得到 "无进位之和" 和 "产生的进位" 之和,那么将这两个数再分别看做新的两个数,对其求和。也是重复之前的操作,直到两数不能产生进位,就可以直接通过 ^ 运算得到结果。
假设我们求 23 + 16 的值

根据上述思路,我们很容易就可以写出代码
public static int addAB(int A, int B) { // 当两数的产生的进位为 0,就退出循环,返回其无进位和,就是结果 while ((A & B) != 0) { int A_B = A ^ B;// 无进位求和 int AB = (A & B) << 1;// 得到进位 // 接下来就是求 得到的进位 + 无进位之和,重复前面的操作,直到不产生进位 A = A_B; B = AB; } // 最后返回新的无进位之和 return (A ^ B); }那么为了验证它的正确性,我们这里使用对数器,将该函数与 ’ + ’ 运算符比较。
public static void main(String[] args) { int count = 1_0000_0000;// 比较次数 100000000次 Random random = new Random();// 生成随机数字 boolean flag = true;// 相等则为 true for (int i = 0; i < count; i++) { int num1 = random.nextInt(Integer.MAX_VALUE/2);// 随机正数1 int num1_2 = random.nextInt(Integer.MAX_VALUE/2);// 随机正数2 // 随机正数1 + 随机正数2 if ((num1+num1_2) != addAB(num1,num1_2)){ // 有一次不相等的,则退出循环 flag = false; break; } int num2 = -random.nextInt(Integer.MAX_VALUE/2);// 随机负数1 int num2_2 = -random.nextInt(Integer.MAX_VALUE/2);// 随机负数2 // 随机负数1 + 随机负数2 if ((num2+num2_2) != addAB(num2,num2_2)){ // 有一次不相等的,则退出循环 flag = false; break; } int num3 = random.nextInt(Integer.MAX_VALUE);// 随机正数 int num4 = -random.nextInt(Integer.MAX_VALUE);// 随机负数 // 随机正数 + 随机负数 if ((num3+num4) != addAB(num3,num4)){ // 有一次不相等的,则退出循环 flag = false; break; } } System.out.println(flag);}运行结果:
最后输出结果为 true ,说明我们计算随机产生的 正数+正数、负数+负数、正数+负数 分别100000000次,没有一次出错,说明该函数可靠。
关于"Java不用算数运算符怎么实现求和"的内容就介绍到这里了,感谢大家的阅读。如果想了解更多行业相关的知识,可以关注行业资讯频道,小编每天都会为大家更新不同的知识点。
正数
负数
运算
之和
运算符
两个
就是
结果
循环
不用
知识
位置
函数
行业
不同
实用
接下来
一般来说
代码
关键
数据库的安全要保护哪些东西
数据库安全各自的含义是什么
生产安全数据库录入
数据库的安全性及管理
数据库安全策略包含哪些
海淀数据库安全审计系统
建立农村房屋安全信息数据库
易用的数据库客户端支持安全管理
连接数据库失败ssl安全错误
数据库的锁怎样保障安全
湖北九亚互联网络科技有限公司
互联网科技战争
互联网科技公司发展
互联网科技视频
华中科技大学互联网
百单互联网科技有限公司
互联网科技汛
美国互联网前沿科技
中盈科技互联网信息有限公司
湖南诚度互联网科技有限公司
互联网和黑科技的看法
重庆互联网医院沙龙医盟信息科技
湖北码尼互联网科技有限公司电话
宜昌元轩互联网科技有限公司
广州新华互联网科技学校电竞方面
互联网科技如何创业
美国互联网科技公司
富国互联网科技002692
郑州欣桑互联网科技有限公司
神州科技互联网有限公司
互联网科技行业发展
涨乐互联网科技
互联网科技logo
互联网高科技企业
苏州五指互联网络科技有限
移动互联网年度科技创新
爱医互联网络科技
众安科技工业互联网合作
艺电能源互联网科技有限公司招聘
恒生科技互联网指数十大成分股