首页 > 编程语言 >Java 计算两个数的中间值

Java 计算两个数的中间值

时间:2023-02-05 12:12:11浏览次数:33  
标签:10 12 0000 int System 中间 计算 Java out

一个数 n ∈ [a, b]

计算中间值 m

第一种方法(会溢出):m = ( a + b ) / 2

int a = 10_0000_0000; // 10亿
int b = 12_0000_0000; // 12亿
int m = (a + b) / 2;
System.out.println(m); // -1047483648

第二种方法(不会溢出):m = a + ( ( b - a ) >> 1 ) 或 m = a + ( ( b - a ) / 2 )

int a = 10_0000_0000; // 10亿
int b = 12_0000_0000; // 12亿
int m = a + ((b - a) >> 1);
// 或者 int m = a + ((b - a) / 2);
System.out.println(m); // 1100000000

第三种方法(不会溢出):m = ( a & b) + ( ( a ^ b) >> 1 )

int a = 10_0000_0000; // 10亿
int b = 12_0000_0000; // 12亿
int m = (a & b) + ((a ^ b) >> 1);
System.out.println(m); // 1100000000

注:

  • a >> n 等价于 a / (2^n)
  • a << n 等价于 a * (2^n)
  • a & 1 等价于 a % 2

标签:10,12,0000,int,System,中间,计算,Java,out
From: https://www.cnblogs.com/sunzhongjie/p/17093136.html

相关文章

  • sql计算众数及中位数
    众数众数:情况①:一组数据中,出现次数最多的数就叫这组数据的众数。举例:1,2,3,3,4的众数是3。情况②:如果有两个或两个以上个数出现次数都是最多的,那么这几个数都是这组数......
  • Java构成覆盖重写的条件(图文)
    如有不足或错误的地方,欢迎讨论指正。目录总结简单示例总结子父类之间具有继承关系必须保证子父类之中的方法名称、参数列表都要相同与方法重载相区别子类方法......
  • 2023.5 Java 2022趋势
    InfoQJava编辑团队做的2022年Java领域内的新型技术采用趋势如下:将所有OpenJDK的下游发行版放到一个标签中,即JavaCommunityJDK,并将它们放到早期大众阶段。这个清单......
  • java如何全局捕获异常
    提问: java在进行全局捕获异常时,总是不起作用,无法正常捕获异常,这个如此处理?具体代码如下全局捕获异常的类ExceptionHandlerAdvicepackagecom.xjc.common.handler;im......
  • 3.3计算机运算出错的原因
    由于前一节了解到将小数二进制数转换成十进制数的方法后,计算机运算出错的原因也就容易理解了。之所以容易出错的原因是“有一些十进制数的小数无法转换成二进制数。例如:十......
  • 读Java实战(第二版)笔记01_Java的变化
    1. 语言的演变1.1. C和C++仍然是构建操作系统和各种嵌入式系统的流行工具1.2. Java和C#等安全型语言在诸多运行资源不太紧张的应用中已经取代了C和C++1.3. Java可......
  • 数据是用二进制数表示的——2.1 用二进制数表示计算机信息的原因
    在C和Java等高级语言编写的程序中,数值、字符串和图像等信息在计算机内部都是以二进制数值的形式来表现的。也就是说,只要掌握了使用二进制数来表示信息的方法及其运算机制,也......
  • 2.4便于计算机处理的“补数”
    接下来我们就一起来看看表示负数的方法和右移的方法:二进制数中表示负数值时,一般会把最高位作为符号来使用,因此我们把这个最高位称为符号位。符号位是0时表示正数,符号位是1......
  • 计算机进行小数运算时出错的原因——3.1将0.1累加100次也得不到10
    首先,我们来看一个计算机运算错误(无法得到正确结果)的例子。下图是将0.1累加100次,然后将结果输出到显示器上的C语言程序。运行过程是这样的:首先把0赋值给变量sum,然后在此......
  • javascript-cnblog
    1.原型和原型链1.1原型js中,函数可以有属性,每个函数都有一个特殊的属性叫做原型prototype(原型)1.2原型链当我们访问某个对象的属性时,如果该对象本身没有,就会到对象......