我厌恶的C语言(作为一名数学家)就是这样的
(-1) % 8 // comes out as -1, and not 7
fmodf(-1,8) // fails similarly
Run Code Online (Sandbox Code Playgroud)
什么是最好的解决方案?
C++允许模板和运算符重载的可能性,但这些对我来说都是模糊的.感激地收到了例子.
假设a并且b都是类型int,并且b非零.考虑a/b在以下情况下执行的结果:
a并且b都是非负的.a并且b都是消极的.在案例1中,结果向下舍入到最接近的整数.但标准对案例2和案例3有什么看法?我发现在互联网上浮动的旧草案表明它是依赖于实现的(是的,甚至是案例2),但委员会倾向于使其始终"向零舍入".有谁知道(最新)标准说的是什么?请仅根据标准回答,而不是有意义的回答,或者特定的编译器做什么.
当c让/操作符分割两个数字时,拥有div()库函数的目的是什么?
是否有任何情况div()不能使用但/可以?
我在这里运行一些代码.我试过了-40 % 3.它给了我输出2.当我在C中执行相同的操作时,我得到:
int i = (-40) % 3
printf("%d", i);
Run Code Online (Sandbox Code Playgroud)
输出是
-1
Run Code Online (Sandbox Code Playgroud)
两种语言如何在内部执行模运算?
我在2001年开始使用Python.我喜欢这种语言的简单性,但是让我感到烦恼的一个功能就是/操作员,这会让我在像
def mean(seq):
"""
Return the arithmetic mean of a list
(unless it just happens to contain all ints)
"""
return sum(seq) / len(seq)
Run Code Online (Sandbox Code Playgroud)
幸运的是,PEP 238已经写好了,一旦我发现了新的from __future__ import division声明,我就开始虔诚地将它添加到我写的每个.py文件中.
但在这里它是近9年后的今天,我仍然经常看到的Python代码示例是使用/整数除法.是//不是一个广为人知的功能吗?或者是否有理由更喜欢旧的方式?