c - 整数除法与常规除法

标签 c double long-integer sieve

我需要将循环中的整数与 longlong 的商进行比较。为了不做整数除法,如果我理解正确,我需要将其中一个 long 转换为 double 吗?

long prime = primes[d];
int i = 1;

//  "inputNumber / prime" should not be integer division, while it is now.
//  How do I do this yet still compare it to an "int" afterwards? 
while (i < (inputNumber / prime))
{
    primes[i*prime] = 0;
    i++;
}

这是代码片段。 primes 是一个由 long 填充的数组。顺便说一句,这段代码是否正确:

primes[i*prime] = 0;

因为我担心 long * int 不能用于数组索引。

非常感谢!

最佳答案

为什么不 while((i * prime) < inputNumber)反而? long乘以 int结果 long ...

关于c - 整数除法与常规除法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11277986/

相关文章:

c - 来自不相关 block 的指针的比较(>,> =,<,<=)

c++ - floor() 的奇怪行为

java - Java 中将基元或对象放入对象映射中的区别

reshape 数据框 - 更改列和行

c - 如何在c中对文件使用fork()

c - 为什么 OpenSSL 加密函数成功时返回 1,失败时返回 0?

c - PIC18F46J50 EEPROM 读/写

c - 在 int 和 double 之间进行运算

java - 如果索引范围为 long,则迭代数组

java - 从 double 计算 HashCode