等价的C函数,不同的结果
我有一个非常简单的C程序,包括以下函数:等价的C函数,不同的结果,c,C,我有一个非常简单的C程序,包括以下函数: int digit(int num) { return num/(10*10*10); } 呼叫数字(2345)返回2-如预期 但是,如果我用以下方式编写函数(我认为这是等效的!!): 然后打电话给digit2(2345),这将返回260!!! ... 这对我来说简直是疯了!!! 在每种情况下,我都使用以下参数进行编译: gcc-std=c99-墙壁-Wextra-Wpedantic-Werror 这到底是怎么回事 10^3表示10异或3,而
int digit(int num)
{
return num/(10*10*10);
}
呼叫数字(2345)返回2-如预期
但是,如果我用以下方式编写函数(我认为这是等效的!!):
然后打电话给digit2(2345),这将返回260!!!
... 这对我来说简直是疯了!!!
在每种情况下,我都使用以下参数进行编译:
gcc-std=c99-墙壁-Wextra-Wpedantic-Werror
这到底是怎么回事 10^3
表示10异或3,而不是10的幂3
要将数字提高到某个幂,请使用frommath.h
。虽然在你的例子中,这可能有点过分了,因为pow足够复杂,可以将浮点数提升为浮点数,但你可以将数字本身相乘。10^3
表示10或3,而不是10乘以3
要将数字提高到某个幂,请使用from
math.h
。虽然在您的情况下,这可能是杀伤力过大,因为pow
足够复杂,可以将浮动提升到浮动功率,但是你可以把数字本身相乘。10^3意味着异或-你需要pow
函数-请看10^3意味着异或-你需要pow
函数-请看10^3
意味着10 xor 3
,也就是9
。我如何将一个数字提高到C的X的幂?10^3
意味着10 xor 3
,这是9
。如何将数字提高到C中X的幂?这是大学作业,我不允许导入库,因此我不能使用pow函数。。。不可能简单地使用10*10*10。。。我怎样才能得到10乘以x在C中的幂的结果呢?python中不是有一些操作符与^等价吗?@staid\u progress,好吧,python的power操作符是**
,而不是^
:最后一个仍然代表XOR。在C语言中,你可以自己乘以一个数字,或者使用pow,或者自己编写一个算法。这是大学作业,我不允许导入库,所以我不能使用pow函数。。。不可能简单地使用10*10*10。。。我怎样才能得到10乘以x在C中的幂的结果呢?python中不是有一些操作符与^等价吗?@staid\u progress,好吧,python的power操作符是**
,而不是^
:最后一个仍然代表XOR。在C语言中,你可以将一个数字本身相乘,或者使用pow
,或者自己编写一个算法。
int digit2(int num)
{
return num/(10^3);
}