【发布时间】:2016-11-12 15:51:25
【问题描述】:
我有一个非常简单的 C 程序,包含以下函数:
int digit(int num)
{
return num/(10*10*10);
}
调用 digit(2345) 返回 2 - 正如预期的那样。
但是,如果我以以下方式编写函数(在我看来,这是等效的!!):
int digit2(int num)
{
return num/(10^3);
}
然后调用 digit2(2345),返回 260 !!! ......这对我来说似乎完全疯了! 在每种情况下,我都使用以下参数进行编译: gcc -std=c99 -Wall -Wextra -Wpedantic -Werror
这到底是怎么回事???!!!!!!
【问题讨论】:
-
10^3表示10 XOR 3,即9。 -
如何在 C 语言中将一个数提高到 X 的幂?
标签: c