问题标签 [integer-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 投票
5 回答
6437 浏览

visual-c++ - Visual C++ 中的 128 位除法内在函数

我想知道 Visual C++ 中是否真的没有 128 位除法内在函数?

有一个 64x64=128 位乘法内在函数称为_umul128(),它很好地匹配MULx64 汇编指令。

自然地,我假设也会有一个 128/64=64 位除法内在函数(对DIV指令建模),但令我惊讶的是,Visual C++ 和 Intel C++ 似乎都没有它,至少它没有在 intrin.h 中列出。

有人可以确认吗?我尝试使用 grep 查找编译器可执行文件中的函数名称,但一开始找不到_umul128,所以我想我看错了地方。

更新:至少我现在umul128在 Visual C++ 2010 的 c1.dll 中找到了该模式(没有前导下划线)。所有其他内在函数都在它周围列出,但不幸的是没有“udiv128”之类的:(所以看起来他们真的已经“忘记”实施它。

澄清一下:我不仅在寻找 128 位数据类型,而且还在寻找一种在 C++ 中将 128 位标量 int 除以 64 位 int 的方法。无论是内在函数还是原生128 位整数支持都可以解决我的问题。

编辑:_udiv128答案是否定的, Visual Studio 2010 到 2017 年都没有内在特性,但它在 Visual Studio 2019 RTM 中可用

0 投票
2 回答
75 浏览

ruby - 有人可以澄清为什么我的循环中的变量值在循环关闭之前不会更新吗?

这是我的功能

对于我的数组中每个计数为 1 的 2 个对象,我的记录器显示如下:

似乎 cum_distn 的值仅在一个循环完成后才更新,而我打算让它在 if 函数打开之前立即更新。我有两个问题:

(a) 为什么会发生这种情况(因为我看不到任何合乎逻辑的解释)?

(b) 我怎样才能纠正这个问题来做我想做的事?

0 投票
1 回答
2084 浏览

vhdl - 在不使用除法或模数的情况下抓取数字的数字

我正在尝试使用 VHDL 实现一个 7 段计数器。

计数器从 0 开始,并将整数值递增到最大值 9999。

该值被传递给一个应该将数字“拆分”为数字的块,以便我可以将它们显示在多路复用的 7 段上......

我已经使用多种方法(例如中断)在 PIC 上完成了此操作……但现在我正尝试在 FPGA(确切地说是 Xilinx Spartan 3E 入门板)上执行此操作,我在实现我写的代码时注意到我既不能使用除法也不能使用模数,因为它们无法实现......

编辑:我知道我可以单独映射 0..9999 的值,但那是遥不可及的。

当然还有另一种方法,但我想不出。

任何有关解决方法的提示将不胜感激!

0 投票
2 回答
4003 浏览

performance - 浮点乘法计算百分比的快速替代方法

我正在 Arduino 上编写一些代码,该代码需要快速运行并对整数百分比进行粗略近似。

例如,给定一个数字,我想找到它的 90%、70% 或 30% 等。显而易见的方法是乘以一个浮点数,例如。x * 0.9; 或 x * 0.3;但是因为我需要速度,所以我想避免浮点计算。如果我只是除以 2 的幂,我会进行位移,但是是否有类似的技术可以使用整数来逼近 90%、80% 等?

0 投票
3 回答
2412 浏览

powershell - PowerShell整数除法的两种方法性能测试

Microsoft technet建议[Math]::Floor([int]$a / [int]$b)进行整数除法。我相信[int][Math]::Floor($a / $b)由于少了一次强制转换操作,它的可读性和性能都更高。我已经证明这两种方法是等效的。但是,我无法获得一致的结果。我的方法包括将这两种方法重复 10,000 次并使用Measure-Command cmdlet 测量结果。但是,不能构建一个测试重复执行比另一个测试更好的测试。我的代码如下:

如何修改我的代码,以便获得一致的结果,证明一种方法比另一种更好。

0 投票
3 回答
7035 浏览

javascript - 如何实现(快速)bigint 除法?

我目前正在制作自己的 BigInt 类,将数字分成 7 位数字。(即以 10,000,000 为基数)

我实现了加法、减法和乘法,现在我正在实现除法和取模。我编写了一个执行长除法除法的代码(通过除以最高有效数字来估计数字),它可以工作。

但是,它太慢了。当我测试一个108位数字和一个67位数字的运算时,计算除法需要1.9ms,比其他操作慢得多(计算加法/减法0.007~0.008ms,计算乘法0.1ms)。

像 Karatsuba 和快速乘法的 FFT 算法一样,存在什么算法来计算除法?Wikipedia演示了一些除法算法(它计算除数的乘法逆并将其与被除数相乘),但我认为这对我实现除法没有多大帮助。我也读过“大整数方法”部分,但这对我也没有帮助...... :(

0 投票
4 回答
68 浏览

language-agnostic - 库存维护

假设我们有 251 件库存商品,我们想将其转换为盒子和单件商品。

我们怎么能做到这一点?

我想要这样的结果

但结果必须为 50 盒和 1 件

0 投票
5 回答
3439 浏览

javascript - Javascript 整数除法,或者是 Math.floor(x) 等价于 x | 0 代表 x >= 0?

查看以下示例,它看起来Math.floor(x)相当于x | 0, for x >= 0。这是真的吗?如果是,为什么?(或如何x | 0计算?)

这对于在 Javascript 中执行整数除法很有用:(5 / 3) | 0而不是Math.floor(5 / 3).

0 投票
5 回答
531 浏览

generics - int64 不支持 LanguagePrimitives.DivideByInt?

为什么int64不支持LanguagePrimitives.DivideByInt?我认为写这样的东西是很自然的:

但是编译器这么说int64 doesn't support the operator DivideByInt

我试图欺骗:

但它不起作用。

可以做些什么来通过 int 对 int64 进行通用除法?

0 投票
2 回答
1114 浏览

php - PHP中的整数除法产生零 - 如何将其转换为浮点数?

俄罗斯纸牌游戏中,我试图在以下 PostgreSQL 表中记录玩家发誓的频率(说“坏话”——我们确实有很多俄语):

我需要生成这个数据的整数 - 1 到 100 之间(溢出是可以的) - 这样我就可以创建以下“swear'o'meter

在此处输入图像描述

所以我正在尝试(在 CentOS 6.2 上使用 PHP 5.3):

不幸的是,我得到了零——因为 PHP 可能正在执行“整数除法”。

我试图将floor()添加到$row['swear']$row['lines']以“投射”它们以浮动 - 但这没有帮助。

更新:

抱歉,我原来的问题有一个错字... $quotient 真的是 0,我把它打印出来。我也尝试了以下方法,但仍然为零: