我需要在Java中执行整数之间的划分,结果应该是一个浮点数.
我可以只使用/符号吗?如:
int integer1 = 1;
int integer2 = 2;
float quotient = integer1 / integer2; // Could I do this?
Run Code Online (Sandbox Code Playgroud) 我对python中的以下整数数学感到困惑:
-7/3 = -3自从(-3)*3 = -9 < -7.我明白.
7/-3 = -3我不明白这是如何定义的.(-3)*(-3) = 9 > 7.在我看来,它应该是-2,因为(-3)*(-2) = 6 < 7.
这是如何运作的?
有两个不同但相关大小的向量.较大的是(2 * RESOLUTION) + INDEX_OFFSET(例如2050)而较小的是RESOLUTION(例如1024).我认为它足够安全,可以假设它uint16_t可以用来包含向量索引.
通过递增resultIndex2 来执行通过较大向量的迭代.在每次迭代期间,对索引处的较小向量进行赋值(resultIndex - INDEX_OFFSET) / 2.
本质上,代码依赖于以下假设:无论INDEX_OFFSET是奇数还是偶数,上面的2除以总是向下舍入,无论架构如何.例如,如果resultIndex是0或1,则预期为0,如果是2或3则预期为1,依此类推.在上述参数范围内,这是一个安全的假设吗?
NB我承认存在'划分整数类型 - 结果是否可预测?' 但它似乎并不完全匹配.
所以,我是编程的新手,我试图制作一个基本的鼹鼠(化学)计算器只是为了好玩.我没有找到这个问题.如果有人回答,请发给我链接.
这是公式:n = N / Nawhere n = mole和Na = 6.022E23
代码的第一部分抛出错误.只是试图得到一个,用我的给定N除以Na,甚至用6.022而不是6.022E23我得到1000.0作为答案.
Scanner in = new Scanner(System.in);
double Na = 6.022;
System.out.print("What do you want to know? Mol(0) or N(1)? ");
int first = in.nextInt();
if (first == 0){
System.out.print("Insert N: ");
double N = in.nextDouble();
double mol = N/Na;
System.out.print("There are " + mol + " mol in that sample.");
}
else if (first == 1){
System.out.print("Insert mol: ");
double mol = in.nextDouble();
double N …Run Code Online (Sandbox Code Playgroud) 我正在用java编程,我需要制定一个算法.算法的要求是:
n,m,k,n几k部分,以便k-parts 的总和等于n,每个部分是1和之间的整数m.例如,输入集:
n = 7; m = 3; k = 4
Run Code Online (Sandbox Code Playgroud)
我们可以制定两种不同的组合:
7 = 2 + 2 + 2 + 1
Run Code Online (Sandbox Code Playgroud)
和
7 = 3 + 2 + 1 + 1
Run Code Online (Sandbox Code Playgroud)
谢谢你们.
在 C 中可以进行楼层划分,例如:
int floor_div(int a, int b) {
int d = a / b;
if (a < 0 != b < 0) { /* negative output (check inputs since 'd' isn't floored) */
if (d * a != b) { /* avoid modulo, use multiply instead */
d -= 1; /* floor */
}
}
return d;
}
Run Code Online (Sandbox Code Playgroud)
但这似乎可以简化。
在 C 中有没有更有效的方法来做到这一点?
请注意,这几乎与这个问题相反:C/C++ 中整数除法的快速上限
为了理解c ++中"if"语句的评估顺序,我指的是问题" "IF"参数评估顺序? ".
下面是if语句中的条件以错误的顺序计算的代码.
#include <iostream>
using namespace std;
int main()
{
int t = 0;
if((1 / t) == 1 && t != 0)
{
cout << "0" << endl;
}
cout << "1" << endl;
return 0;
}
Run Code Online (Sandbox Code Playgroud)
结果是1而不是浮点异常.
是否有一个 checkstyle 规则可以捕获这样的内容:
double result = someInt / someOtherInt;
Run Code Online (Sandbox Code Playgroud)
result 是 double (所以显然需要分数)但右侧会进行整数除法(向下取整)。
这样的东西存在吗?
我想计算 x/y,其中 x 和 y 都是有符号整数,并将结果四舍五入到最接近的整数。具体来说,我想要一个rquotient(x, y)仅使用整数算术的函数,以便:
ASSERT(rquotient(59, 4) == 15);
ASSERT(rquotient(59, -4) == -15);
ASSERT(rquotient(-59, 4) == -15);
ASSERT(rquotient(-59, -4) == 15);
ASSERT(rquotient(57, 4) == 14);
ASSERT(rquotient(57, -4) == -14);
ASSERT(rquotient(-57, 4) == -14);
ASSERT(rquotient(-57, -4) == 14);
Run Code Online (Sandbox Code Playgroud)
我已经向 SO 寻求解决方案,并发现以下内容(每个都有自己的缺点):
我听说当处理器执行 / 或 % 时,它将执行相同的操作,但以一种方式返回商,另一种方式返回余数。
是否可以在一次操作中同时获得两者?也许如果我加入一段汇编代码(我从未做过)?