如何在不使用if或for的情况下查找数字是正数,负数还是零?

nou*_*fal 6 c logic boolean function

我想在微处理器中实现符号和零标志设置.因此,我需要编写一个函数来查找数字是正数,负数还是零而不使用iffor循环,并且只允许使用布尔和位运算符.我做了以下.但是我如何实现它的zero条件?

int status (int x) {
    int sign = (x >> 31);
    return sign;
}
Run Code Online (Sandbox Code Playgroud)

有什么建议 ?

dev*_*ull 7

下面将返回-1负值,0零,1为正值x.

int status (int x) {
  int sign = (x > 0) - (x < 0); 
  return sign;
}
Run Code Online (Sandbox Code Playgroud)