除了以下问题,不确定问这个问题的最佳方式:
我正在编写一个接受名为'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做的.
尝试将正数除以负数。
目前我的程序将正确划分,并且我可以正确访问其余部分。
但是当我输入一个正数除以一个负值时,它根本不会除。
我知道有一种方法可以“签名扩展”并且它会正确划分。我只是看不懂说明书
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)
想法如何除以负数?
看下面的例子,它看起来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) 我试图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功能不工作.
我刚学会了如何使用静态方法.我试图用这段代码计算每个星球的引力:
/**
* 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) 我试图以百分比表示电池电压.我的电池电量是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意外的值.我花了很多时间在这个相当微不足道的任务上并没有取得任何进展.有人能说出问题出在哪里吗?
谢谢.
因此,我想在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()等等。
问题:
可以通过硬件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)
“某些特殊情况”是指异常的红利和除数。我只想比较 …
我是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
我尝试了不同小数位和操作顺序的变体。我似乎无法获得匹配的计算器和方法。
int在 C++ 中对两个值执行除法而不使用时,如何进行四舍五入std::ceil?
通常,我最终会执行以下操作:
double res = ceil(a / (double) b);
Run Code Online (Sandbox Code Playgroud)
有什么方法可以在不使用的情况下复制结果std::ceil?
integer-division ×10
division ×3
assembly ×2
java ×2
javascript ×2
math ×2
percentage ×2
x86-64 ×2
approximate ×1
c ×1
c++ ×1
c++11 ×1
ceil ×1
cuda ×1
formula ×1
nasm ×1
performance ×1
racket ×1
scheme ×1
truncate ×1
x86 ×1