我想得到一个没有逻辑语句的数字的符号。已经有一个预定义的方法可用Math.Sign()
。但我需要以我自己的风格实施。在C中获得一个没有逻辑语句的数字的符号#
久经考验的C#代码:
public int GetSign(int value)
{
int bitFlag = 1;
var m = Convert.ToString(value, 2);
int length = m.Length;
if (m[length - 1] == '1')
{
bitFlag = -1;
}
return bitFlag;
}
条件:
- 如果最后一位是
1
然后返回-1
- 如果最后一位是
0
然后返回1
请作为SIST我,如何去除上述IF
声明...
“条件”如何与数字和'Math.Sign()'的符号相关?你正在检查数字是奇数还是偶数,而不是它的符号。 – zerkms
_“我需要以我自己的风格实现”_ - 为什么?你想在这里解决什么_specific_问题? Math.Sign()有什么问题?你希望的替代实现是否有任何限制?为什么你的版本如此复杂?返回值<0有什么问题? -1:(value> 0?1:0);'(即为什么_“没有逻辑语句”)? –