不使用比较操作求两个数的最大数
来源:互联网 发布:apiv2.0.min.js 编辑:程序博客网 时间:2024/06/05 05:08
编写一个方法,条件是不使用if-else、?-:等判断和比较运算符
第一种方法
public int getMax(int a, int b) { int c = a - b; //取出a-b的符号位 c = c >> 31; /* 如果c是负数,说明a<b,那么移位之后c表示的是-1, 那么a加上比b少的那部分就是最大值了 如果c是正数,说明a>b,那么移位之后c表示的是0, 那么直接返回a就是最大值了 */ return a + c*(a-b); }
第二种方法
public int getMax(int a, int b) { b = a - b; a -= b & (b>>31); /* 如果b是负数,说明a<b,那么移位之后b表示的是-1, 那么进行与操作后,得到的就是a比b小的那一部分,并且以负数表示 即:a = a - (a - b) 如果b是正数,说明a>b,那么移位之后b表示的是0, 那么进行与操作后,得到的就是0 即:a = a - 0 */ return a; }
阅读全文
1 0
- 不使用比较操作求两个数的最大数
- 不使用比较运算符求两个数的最大值or最小值【位运算】
- 求两个数的和,但是不能用加法操作。
- 求两个数的最大公因数
- 求两个数的最大公约公倍数
- 求两个数的最大公因数
- 求两个数的最大公因数
- 两个数求不能组合成的最大数
- 不用比较运算,求两个数中的最大数和最小数
- 三个数的大小比较(求最大数)
- 求给定数的最大“不重复数”
- [算法]不使用*、/、+、-、%操作符求一个数的1/
- 不使用*、/、+、-、%操作符求一个数的1/3
- 不使用*、/、+、-、%操作符求一个数的1/3
- 不使用*、/、+、-、%操作符求一个数的1/3
- 不使用*、/、+、-、%操作符求一个数的1/3
- 不使用*、/、+、-、%操作符求一个数的1/3
- 不使用*、/、+、-、%操作符求一个数的1/3
- 杭电 hdu 2037 贪心
- C语言-大数加法
- Django实现表单登录
- 跳跃游戏
- mysql分区
- 不使用比较操作求两个数的最大数
- 【深度学习】Inception结构
- 手机挖矿教程,操作简单
- 建立View and Data – 3D模型
- SVN和Git对比梳理
- Git 初接触 (六) 建立Git GitHub 远程仓库
- 【专题】网络流
- 大学生活应该这样过
- Codeforces Testing Round #14 (Unrated)