论坛首页 编程语言技术论坛

一个面试题,不使用函数,宏,只使用纯运算符构成表达式,判断一个整数的符号

浏览 2236 次
精华帖 (0) :: 良好帖 (0) :: 新手帖 (0) :: 隐藏帖 (0)
作者 正文
   发表时间:2013-03-04  
C++
例如:short x;

有几种方法使得一个表达式 K, 让x经过一定的运算,结果:当x>0 时K=1;x<0时K=-1;x=0时K=0
K中不能有函数,宏,只能含有x和基本运算符

高手有几种办法?
   发表时间:2013-03-13  
应该比较简单吧,首先是判断符号位,你这个有点特殊,需要x=0时k=0,那么可以通过
符号位 * (x !=0) 就可以了
例如:
k = (x!=0)*(-2*((x>>sizeof(x)*8)&&0x01)+1);
k = (x!=0)*((int)((signed char)("\xFF\x01"[x>0])));
都可以,方法还是比较多的

如果三元运算符也算的话,那就更简单了,那就不用说了吧
1 请登录后投票
论坛首页 编程语言技术版

跳转论坛:
Global site tag (gtag.js) - Google Analytics