【发布时间】:2012-04-26 09:58:34
【问题描述】:
我正在做一些按位运算作业,它说我的代码有一个“解析错误” 我假设它的语法或其他东西......但我找不到丢失的分号或任何东西。 你能找出我可能遇到问题的原因吗?
int isGreater(int x, int y)
{
int xSign = (x>>31);
int ySign = (y>>31);
int check1 = (xSign & ySign) | (~xSign & ~ySign);
int same = ( x + ((~y) + 1) )>>31;
same = !(same & 0x1);
int check2 = (check1 & same) | (~check1 & !xSign);
int equal = (!(x ^ y))<<31>>31;
return (equal & 0) | (~equal & check2);
}
【问题讨论】:
-
请发布完整的错误信息。
-
确切的错误信息是什么,包括行号?
-
bits.c:294:解析错误。第 294 行是发布的倒数第二行。我在 Unix 中工作,所以它没有给我太多细节
-
那么,294 是哪一行?
-
您可以更有效地做很多事情,但您对这篇文章有一个真正的问题:
equal & 0。它永远为零。