integer-division相关内容

X/2和x>;>;1或x*2和x<;<;1的差异,其中x是整数

我们知道,要计算整数x/2,我们只需为x*2编写类似的y=x/2;;但优秀的程序员使用位操作来计算这一点。 他们只是y = x >> 1; 这两种方法有什么区别吗? 我所说的差异是指所需时间/空间/内存的差异,或者两者完全相同(即x/2由x>>1实现)? 与其他数字而不是2的乘除也是以相同的方式实现的(即5*5 = 10*2 + 5*1 = 10 ..
发布时间:2022-09-23 10:11:45 C/C++开发

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

我是Java新手,所以请原谅我。我试图从比赛总数中获得胜利的百分比,但我正在做的事情远远不够。我的百分比计算方法如下: public double winPercentage(int wins, int total) { return (wins % total) * 1.00; } 如果我在254场比赛中赢了52场,我的答案是52.0,使用我的计算器,假设胜利/总数*100,同 ..
发布时间:2022-09-02 16:12:11 Java开发

快速硬件整数除法

用于整数除法的硬件指令在历史上一直非常慢。例如,对于64位输入,Skylake上的DIVQ延迟为42-95个周期[1](倒数吞吐量为24-90)。 不过,也有性能更好的较新处理器:Goldmont有14-43个延迟,而Ryzen有14-47个延迟[1],M1的吞吐量显然是每个分频2个时钟周期[2],甚至Raspberry Pico也有每个内核的8周期带符号/无符号分频/模数电路(尽管这似乎是 ..
发布时间:2022-06-25 13:20:48 其他开发

距离可被整数整除的点对

我遇到了一个面试问题,尽管我一直在努力自己解决这个问题,但我认为我需要一些帮助。 我有一个整数数组(正负)表示空间中的点,两点之间的距离定义为abs(A[i]-A[j]),我需要检查该距离是否可被给定的整数M整除。 情况是这样的: 数组:[-3-2 1 0 8 7 1] M=3 abs(A[1]-A[2])=3(例如,它可以被整数整除) 复杂度应为O(N+M), ..

MIPS计算器实现减法和加法除法,避免DIV和REM指令

我正在使用经典的MIPS计算器示例,但正在尝试更改下面的divis(除法)例程,以仅使用加法和减法,而不是MIPS div运算(类似于我对乘法所做的操作)。这可能很容易做到,但我是MIPS的新手,到目前为止我所做的每一次尝试都没有奏效。帮助? 我正在使用qtSpim作为我的模拟器 到目前为止我对组织结构的了解: start_divis: add $ ..
发布时间:2022-03-27 20:43:35 其他开发

为什么将两个 int 分配给 double 时不会产生正确的值?

为什么会出现在下面的代码片段中 int a = 7;诠释 b = 3;双 c = 0;c = a/b; c 最终的值为 2,而不是预期的 2.3333.如果 a 和 b 是双精度数,那么答案确实会变成 2.333.但肯定是因为 c 已经是一个 double 它应该与整数一起使用? 那么为什么 int/int=double 不起作用? 解决方案 这是因为你使用的是整数除法版本的op ..
发布时间:2022-01-30 16:08:04 C/C++开发

ColdFusion 太大而不能成为整数

我正在尝试将大量数据转换为兆字节.我不要小数 numeric function formatMB(required numeric num) output="false" {返回arguments.num \ 1024 \ 1024;} 然后它会抛出一个错误 我该如何解决这个问题? 解决方案 你不能改变 Long 的大小,这是 CF 用于整数的.所以你需要 BigInteger ..
发布时间:2022-01-09 14:50:41 其他开发

为什么整数除法代码给出错误的答案?

我在 Java 中有一个非常简单的除法(它是产品数量/每小时产量),但是每当我进行这种除法时,我都会遇到奇怪的错误: float res = 数量/标准; 我用几个值尝试了上述除法,但总是出错,但是我在其他任何地方都尝试过并且正确的一个是: 世界各地: 13.6 = 6800/500; Java: 13.0 = 6800/500; 我研究过 BigDecimal 和 BigInt ..
发布时间:2022-01-09 10:01:34 Java开发

为什么Java中两个整数相除返回0.0?

int totalOptCount = 500;int totalRespCount=1500;浮动百分比 =(float)(totalOptCount/totalRespCount); 为什么这总是返回值 0.0?我也想把它格式化成 00.00 格式并转换成字符串? 解决方案 因为到float的转换发生在除法完成之后.你需要: 浮动百分比 = ((float) totalOptCou ..
发布时间:2022-01-09 09:58:01 Java开发

Visual C++ 中的 128 位除法内在

我想知道 Visual C++ 中是否真的没有 128 位除法内在函数? 有一个名为 _umul128() 的 64x64=128 位乘法内在函数,它很好地匹配了 MUL x64 汇编指令. 当然,我假设也会有一个 128/64=64 位的内在除法(模拟 DIV 指令),但令我惊讶的是,Visual C++ 和 Intel C++ 似乎都没有,至少它没有在 intrin.h 中列出. ..
发布时间:2021-12-22 18:50:17 其他开发

我们何时以及为何签署扩展并使用带有 mul/div 的 cdq?

我今天做了一个测试,唯一不明白的问题是将双字转换为四字. 这让我想到,为什么/什么时候我们为乘法或除法签署扩展?另外,我们什么时候使用cdq这样的指令? 解决方案 使用 cdq/idiv对于有符号 32 位/32 位 => 32 位除法, xor edx,edx/div 用于无符号. 以 EAX 中的被除数开始,并将除数指定为 DIV 或 IDIV 的操作数. mov e ..
发布时间:2021-12-18 08:39:01 其他开发

为什么在使用DIV指令之前EDX要为0?

我注意到当 EDX 包含一些随机默认值时,如 00401000,然后我使用了这样的 DIV 指令: mov eax,10mov ebx,5div ebx 它会导致整数溢出错误.但是,如果我将 edx 设置为 0 并执行相同的操作,则它会起作用.我相信使用 div 会导致商覆盖 eax 而余数覆盖 edx. 得到这个整数溢出错误真的让我很困惑. 解决方案 做什么 对于 32 ..
发布时间:2021-12-18 08:31:02 其他开发

为什么浮点数除以整数返回 0.0?

因此,如果我有一个数字范围 '0 - 1024' 并且我想将它们变成 '0 - 255',则数学将要求将输入除以输入的最大值(在这种情况下为 1024)这会给我一个 0.0 - 1.0 之间的数字.然后乘以目标范围(255). 我想做什么! 但是由于某种原因在 Java 中(使用 Processing)它总是会返回一个值 0. 代码就这么简单 浮标;规模 = (n/1024) ..
发布时间:2021-12-17 15:06:37 Java开发

Java中整数的除法

我需要在Java中进行整数除法,结果应该是一个浮点数. 我可以只使用 / 符号吗?如: int integer1 = 1;int integer2 = 2;浮点商 = 整数 1/整数 2;//我可以这样做吗? 解决方案 将其中一个整数转换为浮点数以确保浮点除法: float 结果 = integer1/(float) integer2 ..
发布时间:2021-12-17 15:02:46 Java开发

使用位移位除以 10?

是否可以使用纯位移、加法、减法和也许乘法将一个无符号整数除以 10?使用资源非常有限且划分缓慢的处理器. 解决方案 编者注:这实际上不是编译器所做的,对于以 9 结尾的大正整数,以 div10(1073741829) = 107374183 开头,给出错误答案107374182.不过,它对于较小的输入是准确的,但对于某些用途来说可能就足够了. 编译器(包括 MSVC)确实对常数除数使 ..
发布时间:2021-12-17 14:31:34 其他开发