c - 当我运行代码时,它在终端上显示一些错误。谁能告诉我错误代表什么?我该如何调试它?

标签 c

错误:

Test isPower2(0[0x0]) failed.
Gives 1[0x1].  Should be 0[0x0]

代码:

int isPower2(int x) {

    int nonNega = (x>>31);

    int result = !((x & (x-1)) ^ nonNega);

    return result;
}

最佳答案

您的 isPower2(0) 返回 true (1),但 0 不是 2 的幂。因此预期结果将为 false (0)。

关于c - 当我运行代码时,它在终端上显示一些错误。谁能告诉我错误代表什么?我该如何调试它?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50813811/

相关文章:

c - Windows 程序员转向 Linux - 编码约定

c - 从数组中对 c 中的 2 个字节进行位移

c++ - 这是合法的 C/C++ 吗? `int* p = (int[]) {1,2,3} ;`

c - 如何在标准 C 中执行对不同结构的重铸?

c - 如何将二进制转换为十进制?

python - 将 ByteArray 从 Python 传递给 C 函数

控制可能到达非空函数的结尾 [-Wreturn-type]|

c - 如何为长度为30,000的一维数组动态分配内存?

c - 对C中的图像进行框模糊处理(CS50)

c - 缓冲区溢出攻击在 Ubuntu 20.04 上不起作用