max=((a+b)+abs(a−b))/2min=((a+b)−abs(a−b))/2

\max=((a+b)+abs(a-b))/2\\ \min=((a+b)-abs(a-b))/2
所以问题,转换为如何不使用大于、小于、if语句,实现求一个数的绝对值;

int abs(int x)
{return ((x>>31)&0x01)?(~x+1:x);
}

因此:

#define MAX(a, b)  ((a) + (b) + (((a)-(b)) >> 31 & 0x01 ? ~((a)-(b))+1:((a)-(b)))) >> 1 // 注意 + 的优先级要高于 >>
#define MIN(a, b)  ((a) + (b) - (((a)-(b)) >> 31 & 0x01 ? ~((a)-(b))+1:((a)-(b)))) >> 1 

其实将宏转换为函数可能更为清晰一点:

int max(int x, int y)
{return ((x+y) + (x-y>>31 & 0x01 ? ~(x-y)+1:(x-y)))>>1;
}
int min(int x, int y)
{return ((x+y) - (x-y>>31 & 0x01 ? ~(x-y)+1:(x-y)))>>1;
}

【笔试/面试】—— 不使用大于、小于、if 语句,实现 max 宏相关推荐

  1. java mysql 语句中 大于 小于 等于 的写法

    在项目中使用 mybatis 写 sql 语句时,遇到需要进行大于小于比较的逻辑,在 sqlyog 中直接写 > 或 < 可以正常运行 sql ,但是项目启动起来就报 sql 错误异常. ...

  2. 转:九月十月百度人搜,阿里巴巴,腾讯华为笔试面试八十题(第331-410题)

    分类: 05.MS 100' original 2012-09-13 12:38 108951人阅读 评论(346) 收藏 举报 目录(?)[+] 九月十月百度人搜,阿里巴巴,腾讯华为小米搜狗笔试面试 ...

  3. 九月十月百度人搜,阿里巴巴,腾讯华为小米搜狗笔试面试八十题(10.29)

    文章出处:http://blog.csdn.net/v_july_v/article/details/7974418 九月十月百度人搜,阿里巴巴,腾讯华为小米搜狗笔试面试八十题 (参与算法&面 ...

  4. 九月十月百度人搜,阿里巴巴,腾讯华为小米搜狗笔试面试八十题(10.23)

    引言 自发表上一篇文章至今(事实上,上篇文章更新了近3个月之久),blog已经停了3个多月,而在那之前,自开博以来的21个月每月都不曾断过.正如上一篇文章支持向量机通俗导论(理解SVM的三层境界)末尾 ...

  5. 九月十月百度人搜,阿里巴巴,腾讯华为笔试面试八十题(第331-410题) C++版

    好文章,分享,更多内容请访问原文地址:http://blog.csdn.net/v_july_v/article/details/7974418 九月十月百度人搜,阿里巴巴,腾讯华为小米搜狗笔试面试八 ...

  6. 九月十月百度人搜,阿里巴巴,腾讯华为小米搜狗笔试面试八十题(10.14)

    引言 自发表上一篇文章至今(事实上,上篇文章更新了近3个月之久),blog已经停了3个多月,而在那之前,自开博以来的21个月每月都不曾断过.正如上一篇文章支持向量机通俗导论(理解SVM的三层境界)末尾 ...

  7. 淘宝,微软,IBM等公司笔试,面试题目

    ①淘宝笔试题目 题目大意如下:请使用C语言完成strnicmp的编码实现,要求不能调用任何其他函数.strcicmp完成两个ascii字符串的比较,忽略大小写(两个英文字母比时,认为大小写无差别),最 ...

  8. 嵌入式软件工程师笔试面试指南-C/C++

    哈喽,大家好.最近几天,我把去年秋招总结的笔试面试的一些内容,又进行了重新规划分类.详细分成了简历书写,面试技巧,面经总结,笔试面试八股文总结等四个部分. 其中,八股文又分成了C/C++,数据结构与算 ...

  9. [转]九月十月百度人搜,阿里巴巴,腾讯华为笔试面试八十题(第331-410题)

    引言 自发表上一篇文章至今(事实上,上篇文章更新了近3个月之久),blog已经停了3个多月,而在那之前,自开博以来的21个月每月都不曾断过.正如上一篇文章支持向量机通俗导论(理解SVM的三层境界)末尾 ...

  10. IC/FPGA笔试/面试题分析(八)近期IC/FPGA笔试面试讨论群题目汇总解析

    背景:IC前端设计/FPGA笔(面)试交流群,欢迎同行加入 自从开始邀请同行加入笔试面试交流群之后,目前已经有40多位同行加入,大家踊跃发言,各抒己见,让各自受益匪浅. 今天的这篇博文是将近期部分题目 ...

最新文章

  1. PRICAI开幕 第四范式发起AutoML议题
  2. swift_024(Swift 的构造过程)
  3. 人工智能靠人工:标注员1天要听1000条录音
  4. gva explaination
  5. 详解Scala函数也是对象的特性
  6. spark sql中的窗口函数
  7. hdu 6016 Count the Sheep
  8. C#编程指南:使用属性
  9. html遮罩提示框代码,基于jQuery实现弹出可关闭遮罩提示框实例代码
  10. Jsrender初体验
  11. 大数据开发笔记(九):Flink基础
  12. 从最新的ACL、NAACL和EMNLP中详解知识增强的语言预训练模型
  13. 网络渗透就业学习路线
  14. 电容或电感的电压_眼见不一定为实!电阻、电容和电感的实际等效模型
  15. TesterHome android app 编写历程(三)
  16. vue渲染大量数据优化_vue大数据表格卡顿问题的完美解决方案
  17. Ubuntu清理系统垃圾 命令
  18. 浅谈ASP脚本的解释
  19. MFC添加加瓦系列一之MFC水平与垂直布局
  20. 【php毕业设计】基于php+mysql+mvc的网上留言管理系统设计与实现(毕业论文+程序源码)——网上留言管理系统

热门文章

  1. Nginx增加第三方外部插件
  2. 关于sql的正则表达式
  3. docker 网桥冲突了解决
  4. hive 中String对长度没有限制
  5. aspose.words读取html,Aspose.Words for .NET HTML代码直接生成WORD | 学步园
  6. mac的终端通过ssh远程连接Linux服务器
  7. Sublime Text3 python交互式环境+快捷键设置
  8. 大数据系列3-第一章-大数据概论
  9. Pycharm Professional(专业版2018.2.1)最简单方法破解,亲测有效(转)
  10. HDU 5863 cjj's string game ( 16年多校10 G 题、矩阵快速幂优化线性递推DP )