标签: integer-division

我可以用一个数学公式来表达这些条件吗?

除了以下问题,不确定问这个问题的最佳方式:

我正在编写一个接受名为'x'的变量的函数.

function doIt(x){
  var y = someformula; //this is just a placeholder for the correct formula
  return y;
}
Run Code Online (Sandbox Code Playgroud)

这就是我期望的回报:

if (x is between 0 and 9){ y = 0; }

if (x is between 10 and 19){ y = 32; }

if (x is between 20 and 29){ y = 64; }

if (x is between 30 and 39){ y = 96; }
Run Code Online (Sandbox Code Playgroud)

等等....

任何帮助表示赞赏.

如果重要的话,我是用JavaScript做的.

javascript math formula integer-division

1
推荐指数
1
解决办法
198
查看次数

nasm idiv 为负值

尝试将正数除以负数。

目前我的程序将正确划分,并且我可以正确访问其余部分。

但是当我输入一个正数除以一个负值时,它根本不会除。

我知道有一种方法可以“签名扩展”并且它会正确划分。我只是看不懂说明书

movsss $imm/%reg %reg/mem 移动,符号扩展 231 movzss $imm/%reg %reg/mem 移动,零扩展

当然那是 att 语法,我需要 intel 语法

这是我的代码

xor rdx, rdx
mov rax, [input]
mov rcx, [input2]
idiv rcx
Run Code Online (Sandbox Code Playgroud)

想法如何除以负数?

assembly x86-64 nasm integer-division

1
推荐指数
1
解决办法
3834
查看次数

Javascript 整数除法,或者 Math.floor(x) 等于 x | 0 表示 x >= 0?

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

x = -2.9; console.log(Math.floor(x) + ", " + (x | 0));   // -3, -2
x = -2.3; console.log(Math.floor(x) + ", " + (x | 0));   // -3, -2
x = -2;   console.log(Math.floor(x) + ", " + (x | 0));   // -2, -2
x = -0.5; console.log(Math.floor(x) + ", " + (x | 0));   // -1, 0
x = 0;    console.log(Math.floor(x) + ", " + …
Run Code Online (Sandbox Code Playgroud)

javascript division integer-division

1
推荐指数
1
解决办法
5336
查看次数

截断没有在DrRacket中定义

我试图truncate在方案中使用该函数,DrRacket继续发出此消息

ProblemA.rkt:27:46: truncate: this function is not defined in: truncate
Run Code Online (Sandbox Code Playgroud)

是否有导入或我可以添加的内容,以便编译器可以找到该库truncate

基本上我想做整数除法的方案,以便98/10 = 9代替9.8,但truncate功能不工作.

scheme truncate integer-division racket

1
推荐指数
1
解决办法
2123
查看次数

数学结果以十的幂为单位

我刚学会了如何使用静态方法.我试图用这段代码计算每个星球的引力:

/**
 * Calculates the acceleration due to gravity on each planet, and then displays the     info in a nice table and in a text file
 * 
 * @author Ely Eastman
 * @version 14.8.2014
 */
public class GravityV1
{
//method for calulating gravity
public static double [] gravCalc(double [] d, double [] m){
    double[] gravFinal = new double [d.length];
    for(int i = 0; i < d.length; i++){
       gravFinal[i] = ((6.67 * 10E-11) * m[i]) / Math.pow(((d[i] * 1000) / 2) …
Run Code Online (Sandbox Code Playgroud)

java integer-division

1
推荐指数
1
解决办法
126
查看次数

计算百分比时出现意外结果 - 即使在分解整数除法规则时也是如此

我试图以百分比表示电池电压.我的电池电量是mV的(全局)uint16.我有一个16位CPU.这是我的代码:

static uint8 convertBattery(void){
    uint16 const fullBattery = 3000; /* 3V = 3000mV */
    uint8 charge;
    charge = ((battery*100)/fullBattery);
    return charge;
}
Run Code Online (Sandbox Code Playgroud)

正如你所看到的,我已经通过将分子乘以100得到了整数除法.

使用battery = 2756我的充电值计算出04意外的值.我花了很多时间在这个相当微不足道的任务上并没有取得任何进展.有人能说出问题出在哪里吗?

谢谢.

c integer-overflow integer-division percentage

1
推荐指数
1
解决办法
176
查看次数

GPU上的廉价近似整数除法

因此,我想在GPU上划分一些32位无符号整数,并且我不关心获得确切的结果。实际上,让我们宽容些,并假设我愿意接受高达2的乘法误差因子,即,如果q = x / y,我愿意接受0.5 * q和2 * q之间的任何值。

我还没有测量任何东西,但是在我看来,这样的东西(CUDA代码)应该有用:

__device__ unsigned cheap_approximate_division(unsigned dividend, unsigned divisor)
{
    return 1u << (__clz(dividend) - __clz(divisor));
}
Run Code Online (Sandbox Code Playgroud)

它使用固有“查找第一个(位)集”整数作为便宜的基2对数函数。

注意:我可以使这个非32位专用的,但是然后我必须使代码与模板复杂化,并包装__clz()使用要使用的模板化函数__clzl()__clzll()等等。

问题:

  • 就时钟周期而言,是否存在更好的方法来进行这种近似分频?也许约束略有不同?
  • 如果我想获得更高的精度,应该保留整数还是应该只进行浮点运算?

cuda integer-division approximate

1
推荐指数
1
解决办法
559
查看次数

在某些情况下,在x86-64 Intel / AMD CPU上,128bit / 64bit硬件无符号除法能否比64bit / 32bit除法更快?

可以通过硬件128bit / 64bit除法指令执行缩放的64bit / 32bit除法,例如:

; Entry arguments: Dividend in EAX, Divisor in EBX
shl rax, 32  ;Scale up the Dividend by 2^32
xor rdx,rdx
and rbx, 0xFFFFFFFF  ;Clear any garbage that might have been in the upper half of RBX
div rbx  ; RAX = RDX:RAX / RBX
Run Code Online (Sandbox Code Playgroud)

...在某些特殊情况下,比硬件64位/ 32位除法指令执行的缩放64位/ 32位除法更快,例如:

; Entry arguments: Dividend in EAX, Divisor in EBX
mov edx,eax  ;Scale up the Dividend by 2^32
xor eax,eax
div ebx  ; EAX = EDX:EAX / EBX
Run Code Online (Sandbox Code Playgroud)

“某些特殊情况”是指异常的红利和除数。我只想比较 …

performance x86 assembly x86-64 integer-division

1
推荐指数
1
解决办法
107
查看次数

涉及数学给出与计算器不同答案的方法

我是Java的新手,所以请多多包涵。我正在尝试从游戏总数中获取获胜百分比,而我正在做的事情还很遥远。我的获取百分比的方法如下:

public double winPercentage(int wins, int total)
{
    return (wins % total) * 1.00;
}
Run Code Online (Sandbox Code Playgroud)

如果我在254场比赛中赢得52场比赛,我的答案是52.0,使用我的计算器,假设获胜/总数* 100,则相同的答案是20.47。如果我将模数切换为/我会不断得到0.0

我尝试了不同小数位和操作顺序的变体。我似乎无法获得匹配的计算器和方法。

java math division integer-division percentage

1
推荐指数
1
解决办法
48
查看次数

C++ 中的除法汇总

int在 C++ 中对两个值执行除法而不使用时,如何进行四舍五入std::ceil

通常,我最终会执行以下操作:

double res = ceil(a / (double) b);
Run Code Online (Sandbox Code Playgroud)

有什么方法可以在不使用的情况下复制结果std::ceil

c++ division integer-division ceil c++11

1
推荐指数
1
解决办法
92
查看次数