我知道数学中不允许除以零,但我可以使用零取模吗?我应该得到什么答案?
例如
10%0 = ?
5%0 = ?
最佳答案
标准将其定义为“未定义”。
在几乎所有处理器中,模运算的执行功能与除法相同。在现代较大的处理器中,它是一条指令(例如 x86)。大多数情况下,这条指令在除以零时会导致陷阱,这适用于代码是“打算使用模数”还是“商”部分。
它是未定义的,因此处理器和编译器可以自由地实现他们喜欢的东西——例如如果处理器只是返回输入的任何内容,那也是允许的,或者如果它导致整个操作系统崩溃,那么按照标准,这也“很好”。
总而言之,对零取模与除以零一样糟糕。
(请注意,通常情况下, float 除以零不会 [默认] 陷入陷阱并产生无穷大值,除非除以的值也为零,在这种情况下你会得到“不是数字”)
关于c++ - 除以零后的余数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22275684/