打印
[经验分享]

位运算与取模运算的效率对比

[复制链接]
842|27
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
linfelix|  楼主 | 2023-9-29 12:00 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
package com.test;

public class Main {

    public static void main(String[] args) {
        bit();
        modulus();
    }

    public static void bit() {
        int number = 100 * 1000;// 分别取值10万、100万、1000万、1亿
        int a = 1;
        long start = System.currentTimeMillis();
        for (int i = number; i > 0; i++) {
            a = a & i;
        }
        long end = System.currentTimeMillis();
        System.out.println("位运算耗时: " + (end - start));
    }

    public static void modulus() {
        int number = 10000 * 10;// 分别取值10万、100万、1000万、1亿
        int a = 1;
        long start = System.currentTimeMillis();
        for (int i = number; i > 0; i++) {
            a %= i;
        }
        long end = System.currentTimeMillis();
        System.out.println("取模运算耗时: " + (end - start));
    }
}

执行结果:

位运算耗时: 1004取模运算耗时: 20445

使用特权

评论回复
沙发
maqianqu| | 2023-10-5 22:10 | 只看该作者
位运算通常比取模运算更快。位运算是对二进制数进行的运算,可以直接在内存中进行,而取模运算需要进行除法运算,会涉及到浮点数运算,因此运算速度相对较慢。

使用特权

评论回复
板凳
robincotton| | 2023-10-5 22:25 | 只看该作者
位运算和取模运算的效率对比取决于具体的应用场景

使用特权

评论回复
地板
tabmone| | 2023-10-6 22:26 | 只看该作者
位运算通常比取模运算更节省内存。位运算只需要进行简单的位操作,不需要保存除法运算的结果,而取模运算需要保存除法运算的结果,因此内存占用较大。

使用特权

评论回复
5
cemaj| | 2023-10-6 22:45 | 只看该作者
取模运算在处理一些问题时可能是必要的

使用特权

评论回复
6
jimmhu| | 2023-10-7 14:19 | 只看该作者
位运算主要用于对二进制数据的处理和优化,如位掩码、位操作等。而取模运算主要用于数值计算和逻辑判断,如判断奇偶性、计算哈希值等。

使用特权

评论回复
7
wilhelmina2| | 2023-10-7 22:17 | 只看该作者
位运算是基于底层硬件的位操作,可以在一个操作中同时处理多个位

使用特权

评论回复
8
eefas| | 2023-10-8 17:58 | 只看该作者
在进行模运算时,如果除数较大,可以使用取模运算来避免除法运算的精度问题。

使用特权

评论回复
9
janewood| | 2023-10-8 18:15 | 只看该作者
位运算和取模运算都是计算机中常用的运算符,但它们的效率不同。

使用特权

评论回复
10
juliestephen| | 2023-10-8 19:33 | 只看该作者
位运算比取模运算更快,因为位运算只需要对二进制数进行操作,而取模运算需要对十进制数进行操作

使用特权

评论回复
11
olivem55arlowe| | 2023-10-8 21:03 | 只看该作者
位运算通常比普通的数**算更快,因为它可以直接操作二进制位,而不需要进行实际的数学计算。但是,位运算的复杂性可能增加代码阅读的困难度。

使用特权

评论回复
12
iyoum| | 2023-10-8 22:40 | 只看该作者
位运算和取模运算在效率上有明显的差异。位运算是对二进制数进行操作的运算,而取模运算是对整数进行求余的运算。

使用特权

评论回复
13
单片小菜| | 2023-10-10 10:01 | 只看该作者
直接位运算,取模基本上不用的,很少使用。

使用特权

评论回复
14
gygp| | 2023-10-10 19:53 | 只看该作者
取模运算通常比较耗时,特别是在一些较大的数值范围内。

使用特权

评论回复
15
loutin| | 2023-10-10 21:11 | 只看该作者
取模运算可能会更加方便和直观              

使用特权

评论回复
16
linfelix|  楼主 | 2023-10-10 21:47 | 只看该作者
位运算直接对内存数据进行操作,不需要转成十进制,因此处理速度非常快。而取模运算则需要将数据转换为十进制,再进行运算,因此处理速度相对较慢。

使用特权

评论回复
17
fengm| | 2023-10-11 22:10 | 只看该作者
在处理大数据量、需要高精度计算或需要快速执行的场合,位运算更为适用;而在处理小数据量、需要快速执行或需要简单计算的场合,取模运算更为适用。

使用特权

评论回复
18
pmp| | 2023-10-12 20:29 | 只看该作者
位运算在很多场景下可以替代一些常见的数**算,从而提高程序的执行效率。

使用特权

评论回复
19
backlugin| | 2023-10-12 21:30 | 只看该作者
位运算(&)比取模运算(%)具有更高的效率

使用特权

评论回复
20
deliahouse887| | 2023-10-12 22:51 | 只看该作者
实际的性能可能会因编程语言、编译器优化和其他因素而有所不同

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

25

主题

1092

帖子

1

粉丝