问题标签 [multiplication]
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.
architecture - 多周期数据路径写入中的乘法
我想知道处理器如何从一开始就在多周期数据路径中进行乘法运算,即从指令读取->解码指令->读取寄存器文件等。
换句话说,我想知道,考虑到booth的乘法算法是单独实现的(给出了一个电路),你将如何扩展多周期数据路径以支持使用最少资源的乘法指令。
你能告诉除法吗?
c - C中的MUL(汇编程序)
在汇编程序中,我可以使用 MUL 命令并获得 64 位结果 EAX:EDX,我如何在 C 中做同样的事情?http://siyobik.info/index.php?module=x86&id=210
我使用 uint64_t 并转换结果的方法不起作用^^
感谢您的帮助(=
我
c++ - MOD 运算是否比乘法更占用 CPU?
为什么 mod ( %
) 操作比乘法 ( ) 的成本高出2*
倍多一点?
请更具体地说明 CPU 如何执行除法运算并返回 MOD 运算的结果。
在以下示例中,每个线程运行一秒钟。测试是在SPARC
处理器上进行的。
c - 为什么 uint_least16_t 在 x86_64 中的乘法比 uint_fast16_t 快?
C 标准对类型族非常不清楚uint_fast*_t
。在 gcc-4.4.4 linux x86_64 系统上,类型uint_fast16_t
和uint_fast32_t
都是 8 字节大小。但是,8 字节数字的乘法似乎比 4 字节数字的乘法要慢得多。下面的一段代码证明了这一点:
在程序上运行时间命令,我得到
如果我将类型更改为uint_fast16_t
(和 printf 修饰符),则时间变为
uint_fast16_t
那么,如果将 stdint.h 标头(以及 uint_fast32_t)定义为 4 字节类型,不是更好吗?
c++ - 双乘法给出四舍五入的结果
我期待结果是“999898.9892”但得到“999899”。我需要实际的未舍入结果。请提出建议。
c - 即使 a 乘以 b 不适合这种类型,如何仅使用 32 位整数类型计算 (a 乘以 b) 除以 c
考虑以下作为参考实现:
我对不需要 64 位整数类型的实现(在 C 或伪代码中)感兴趣。
我开始草拟一个概述如下的实现:
但困难在于为 d1 和 d2 选择能够避免溢出的值 ((a / d1) * (b / d2) <= UINT32_MAX) 并最大限度地减少整个计算的错误。
有什么想法吗?
c++ - C++ 64位整数运算:有人可以解释为什么这个有效而另一个无效吗?
我需要对 64 位整数进行操作。我试图将 36 的结果提高到 12 的幂作为练习(并且作为要求)。
我在我的 VS2008 编译器上使用了 unsigned long long 作为 64 位整数。我已经编写了下面的代码,有人可以向我解释一下,为什么我的 for 循环版本会产生不正确的结果,而我的递归版本的 Power 函数会产生正确的结果?
仅供参考:36 提高到 12 是 4738381338321616896
scheme - 如何在方案中进行加法和乘法
在将值与变量相乘并将它们分配给 Scheme 中的变量时,我需要帮助。
例如我有..
..
我需要做类似的事情
整体 = usrInput*part1 + usrInput*part2 + part3
在方案
我知道如何将 2 个变量/标量加在一起,但我在这里卡住了,请您指教...
谢谢你。
php - 如何将php数组的元素相乘
我正在尝试将 javascript 函数转换为 php,但我的数组存在一些问题。我需要遍历数组元素,将它们全部乘以一定数量,但它不会改变值。很确定这是因为我的语法 $coordinates_p[i][0] *= $scale; 不正确,但我不确定它应该是什么!
测试代码:
assembly - 如何将两个 32 位寄存器组合成 64 位答案?
我正在使用我认为使用 MIPS 的 pcsim 程序。我并不积极,因为我对汇编语言很陌生。我只需要使用 add 和 shift 将两个 32 位数字相乘并将乘积存储在两个寄存器中。如果结果可以存储在 32 位中,我已经将它成功地乘以两个数字。问题是,如果数字大于这个数字,我无法弄清楚如何将产品的右半部分与左半部分结合起来。左半部分寄存器应该保存从 2^32 开始的值。如果不清楚,我可以尝试解释更多。我忽略了一些简单的方法来实现这一点吗?谢谢你的帮助。