Questions tagged «integer-division»

与整数除法运算有关的任何事,即在两个整数之间执行的特殊除法形式,在数学上会导致商与余数。这与具有特定整数数据类型的语言(对于该语言,其除法为整数除法)或具有特定运算符/函数以执行整数除法的语言最为相关。



10
整数除法:您如何产生双倍?
对于此代码块: int num = 5; int denom = 7; double d = num / denom; 的值d就是0.0。它可以通过强制转换来工作: double d = ((double) num) / denom; 但是还有另一种方法来获得正确的double结果吗?我不喜欢强制转换基元,谁知道会发生什么。

5
为什么GCC在实现整数除法时使用乘以奇数的乘法?
我一直在阅读div和mul汇编操作,我决定通过用C编写一个简单程序来看到它们的作用: 文件分割 #include <stdlib.h> #include <stdio.h> int main() { size_t i = 9; size_t j = i / 5; printf("%zu\n",j); return 0; } 然后使用以下命令生成汇编语言代码: gcc -S division.c -O0 -masm=intel 但是查看生成的division.s文件,它不包含任何div操作!取而代之的是,它执行某种带有移位和魔术数字的黑魔法。这是一个计算的代码片段i/5: mov rax, QWORD PTR [rbp-16] ; Move i (=9) to RAX movabs rdx, -3689348814741910323 ; Move some magic number to …



9
为何将int除以2会产生正确的值?
以下代码段中的结果如何 int a = 7; int b = 3; double c = 0; c = a / b; c最终得到的值为2,而不是人们所期望的2.3333。如果a和b是双打,答案的确变为2.333。但是可以肯定的是,因为c 已经是双精度数,它应该与整数一起使用吗? 那么怎么int/int=double不起作用呢?




2
python中整数除法和浮点数到整数转换之间的区别是什么原因?
我最近注意到,int()将浮点数舍入为0,而整数除法将浮点数舍入为底数。 例如: -7 // 2 = -4 int(-7/2) = -3 我已经阅读了说明以下内容的文档: 类int(x,base = 10) 返回由数字或字符串x构造的整数对象,如果没有给出任何参数,则返回0。如果x是数字,则返回x。int()。对于浮点数,它会截断为零。 和: 楼层划分 四舍五入到最接近的整数的数学除法。楼层划分运算符为//。例如,与float true除法返回的2.75相比,表达式11 // 4的计算结果为2。请注意(-11)// 4是-3,因为它是向下向下取整的-2.75。参见PEP 238。 但是对我来说,两个类似的操作(将浮点数除以整数)应该返回不同的结果似乎不合逻辑。 这些功能之间的差异是否有动机? 谢谢。
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.