问题标签 [floor-division]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
4 回答
119 浏览

c++ - C++ 除法问题

我需要用 C++ 编写一个程序,在其中插入一个 4 位数字的数字“n”,这是一个简单的数字,在控制台中,控制台向我显示了某个数字与我首先需要的 4 位数字的乘积写。我尝试编写 (n/!2) 以使程序仅在数字不能除以 2 并且控制台显示"main.cpp:22:36: warning: division by zero [-Wdiv-by-zero]". 我已尝试删除 (n/!2) 并且代码执行没有问题时才执行. 如果有人能告诉我如何解决它,我会很高兴。

0 投票
1 回答
113 浏览

python - 为什么大整数的经典除法(“/”)比整数除法(“//”)慢得多?

我遇到了一个问题:如果对 (p-1)/2 使用经典除法,那么 512 位奇数的代码会非常慢。但是使用楼层划分,它可以立即生效。是浮点数转换引起的吗?


完整代码

0 投票
1 回答
164 浏览

ios - 使用 floorf 与 floor

我的代码中有以下情况:

它工作得很好,但我注意到当我使用时floor,它也工作得很好。我也对如何定义感到困惑rows,它应该是NSUIntegerorCGFloat吗?

它似乎在所有情况下都可以正常工作,但是我在理解浮点数学时遇到了一些麻烦,并且想知道执行此代码的最佳方法是什么?还是有关系?

0 投票
0 回答
65 浏览

python - python中5.5//1.1的值是多少?如何?

5.5//1.1 的分步答案是什么。在编译器中运行时,它会给出4.0作为答案。

0 投票
2 回答
74 浏览

64-bit - 如何将 128 位被除数除以 64 位除数,其中被除数的位全为 1,而我只需要商的 64 个 LSB?

我需要计算((2^128) - 1) / x。除数 ,x是一个无符号的 64 位数字。被除数由两个无符号 64 位数字(高位和低位)组成,其中两个数字都是UINT64_MAX. 我只能使用 64 位算术并且需要它是可移植的(不使用 GNU's __int128、MSCV's _udiv128、程序集或类似的东西)。我不需要商的高部分,我只需要低 64 位。

我该怎么做这个操作?

另外:x >= 3,x不是 2 的幂。

编辑:我创建了自己的解决方案(答案如下)。但我欢迎任何其他性能更好的解决方案:)

0 投票
2 回答
66 浏览

python - Python中意外的整数除法与浮点除法结果

在 Python 中运行以下代码会产生一些意想不到的结果。

现在,如果两个结果相同,我可能已经理解了差异,因为浮点数是如何以二进制形式存储的。问题是为什么第二个结果与第一个不同?除了后者“地板”结果之外,/ 和 // 的工作方式是否有区别?

0 投票
2 回答
104 浏览

c++ - 精确双除法

考虑以下函数:

所以我想在数学意义上k计算最大的整数。k * b <= a由于可能存在舍入错误,我不确定上述函数是否真的计算 this k。我不担心k可能超出范围的情况。确定这一点的正确方法是什么k

0 投票
1 回答
93 浏览

c - 如何仅使用最接近偶数舍入模式计算 trunc(a/b)?

给定两个 IEEE-754 双精度浮点数ab,我想得到精确的商a / b四舍五入到零的整数。
执行此操作的 C99 程序可能如下所示:

现在假设我只能使用最接近偶数舍入模式:我可能正在使用带有优化的 GCC,为微控制器编译,或者必须使其在 JavaScript 中工作。

我尝试的是使用提供的舍入计算a / b,如果结果的幅度太大,则截断并进行补偿:

辅助函数mul_error计算精确的乘法误差(使用 Veltkamp-Dekker 分裂):

某些输入的补偿是否会失败(例如,由于上溢或下溢)?
有更快的方法吗?


编辑:将第一行的mul_errorfrom更改… return a*b… return -a*b;. 这修复了a = ±∞ 的情况;有限输入没问题。
感谢Eric Postpischil发现错误。


编辑:如果ab是有限且非零且除法a / b溢出,我想在舍入到零模式下匹配 IEEE-754 除法,它返回最大有限双精度数 ±(2¹⁰²⁴ − 2⁹⁷¹)。


编辑:函数frexpldexp只能在必要时调用。这对于具有均匀随机位
的双倍ab来说是 30% 的加速。

也许ldexp总是不必要的,因为我们只需要知道 mul_error 与 0 的比较


编辑:如果您有 128 位整数可用,请按照以下步骤操作。(它比原始版本慢。)