更安全的求中间值

 

1. 数组 arr,起始位置是 L, 终点位置 R

常规写法

int mid = (L + R) /  2;

更安全的写法

int mid = L + ((R - L)  >> 1)

 

 

2. 如何获得数据的长度

new int[R - L + 1]

 

3. 步长乘二的安全方式

不安全,可能溢出,因为 int 的最大值是 2的31 - 1

当step等于2的30次方时,*2等于 2的 31次方了 会溢出

 

安全

step *= 2

if(step >= (N >> 2)){

break;

}else{

step *=2;

}

 

posted @   Minde  阅读(21)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· winform 绘制太阳,地球,月球 运作规律
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· AI 智能体引爆开源社区「GitHub 热点速览」
· Manus的开源复刻OpenManus初探
· 写一个简单的SQL生成工具
点击右上角即可分享
微信分享提示