不使用任何逻辑判断语句(如if……else等)以及三元表达式,编码实现分段函数f(x):
x<0时f(x)=-1;x=0时f(x)=0;x>0时f(x)=1(-999,999,999<x<999,999,999)
想了好久才想出来,学的东西的东西都快还给老师了。static int functionUseless(int n) {
// n>>31 负数返还全1,0和正数返回全0
// 0x80000000 & (n - 1)& 1 看看是不是0,是0符号为则会1整数符号为为0
// ^ 1把得到的值转换一下
return (n >> 31) | ((((0x80000000 & (n - 1)) >> 31) & 1) ^ 1);
}
本文介绍了一种不使用任何逻辑判断语句及三元表达式的方法来实现分段函数f(x),该函数根据输入x的正负零值返回-1、0或1。代码巧妙地利用位运算和特定的数值属性来区分不同的输入范围。
2027





