没有测试过使用取余运算符和位运算符都做同一件事时的时间效率!

取余运算符%

如3除以2取余数

int a =

a = a%;

结果为1

上面是传统的方式进行求余运算。

需要先将10进制转成2进制到内存中进行计算,然后再把结果转换成10进制

而位运算是直接在内存中进行,不需要经过这些转换

但是位运算只能用于除数是2的n次方的数的求余

也就是说,B%C,要满足C=2n

比如:

14%4 等价于 14&(22-1)

结果都是等于2

计算过程

14 1110

3 11

1110 & 11=10 = 2

但是14%6  不等价于   14&6

计算过程

14 1110

6-1=5 101

1110 & 101=100 = 4

这个6不是2n次方的倍数,所以算出来的结果都不会相等。

在哪个地方可以用到?

这个可以用于特定的hash求余算法中,比如HashMap中查找key的hash值对应的位置。可以提高查找位置的速度

用于已知的数据运算,20483%64,这种已知除数是2的n次方的程序中,HashMap中就是使用这种方式

洛谷 P1226 【模板】快速幂||取余运算

题目链接 https://www.luogu.org/problemnew/show/P1226 题目描述 输入b,p,k的值,求b^p mod k的值.其中b,p,k*k为长整型数. 输入输出格式 ...

php取余运算(%) 注意事项

codevs 1497取余运算

1497 取余运算  时间限制: 1 s  空间限制: 128000 KB  题目等级 : 钻石 Diamon   题目描述 Description 输入b,p,k的值,编程计算bp mod k的值. ...

BigDecimal取余运算

取余运算在编程中运用非常广泛,对于BigDecimal对象取余运算可以通过divideAndRemainder方法实现. public BigDecimal[] divideAndRemainder( ...

洛谷P1226 【模板】快速幂||取余运算

题目描述 输入b,p,k的值,求b^p mod k的值.其中b,p,k*k为长整型数. 输入输出格式 输入格式: 三个整数b,p,k. 输出格式: 输出“b^p mod k=s” s为运算结果 S1: ...

LuoguP1226 【模板】快速幂||取余运算

题目链接:https://www.luogu.org/problemnew/show/P1226 第一次学快速幂,将别人对快速幂原理的解释简要概括一下: 计算a^b时,直接乘的话计算次数为b,而快速幂 ...

快速幂 cojs 1130. 取余运算

cojs 1130. 取余运算 ★   输入文件:dmod.in   输出文件:dmod.out   简单对比时间限制:10 s   内存限制:128 MB [题目描述] 输入b,p,k的值,求b^p ...

洛谷——P1226 取余运算||快速幂

P1226 取余运算||快速幂 题目描述 输入b,p,k的值,求b^p mod k的值.其中b,p,k*k为长整型数. 输入输出格式 输入格式: 三个整数b,p,k. 输出格式: 输出“b^p mod ...

随机推荐

java maven strom 启动异常

Exception in thread "main" java.lang.NoClassDefFoundError: org/apache/storm/topology/IRich ...

中国版的 Office 365

与Windows Azure一样,中国版的Office 365也是由世纪互联运营的——与国际版完全隔离的定制版.而言,从功能方面来看,中国版的Office 365并没有损失太多功能,并且其更新速度也基 ...

解决 windows2012 下无法安装 sql2008R2

Press the Windows logo key, type control panel, and then click the Control Panel icon. Note If you a ...

Wo Wei Shen Me Hui Zai cnblogs Xie Bo Ke

我为什么会在cnblogs上写博客.. CSDN上我上传过代码被很多网友下载过.CSDN我申请过博客.也写过几篇博客. 开源中国 我上传过代码.代码也被网友下载过.OSChina我申请过博客.也写过几 ...

zabbix设置报警通知

邮件通知是最流行的报警通知方式,这里配置邮件通知 1. 配置通知邮箱信息(发件人)的邮箱信息 2. 填写信息 3. 事件(Action)通知配置 点击创建动作 添加一个触发条件 点击添加 添加一个操作 ...

weblogic11g重置控制密码

Reset the AdminServer Password in WebLogic 11g and 12c If you forget the AdminServer password for yo ...

PHP 字符串常用操作

1,拼接字符串 拼接字符串是最常用到的字符串操作之一,在PHP中支持三种方式对字符串进行拼接操作,分别是圆点.分隔符{}操作,还有圆点等号.=来进行操作,圆点等号可以把一个比较长的字符串分解为几行进行 ...

【Leetcode】【Easy】Same Tree

Given two binary trees, write a function to check if they are equal or not. Two binary trees are con ...

netty之编解码

1.netty的编码和解码,在数据传输的时候,考虑数据安全,数据完整性都是很有必要的.这里主要是介绍netty3和netty5的编解码方式.其实从StringEncoder和StringDecoder ...

java取余位运算_java学习--高效的除模取余运算(n-1)hash相关推荐

  1. java爬取网页并保存_Java结合WebMagic实现网页内容爬取

    码农公社  210.net.cn  210是何含义?10月24日是程序员节,1024 =210.210既 210 之意. Java结合WebMagic实现网页内容爬取 安装 这里使用maven进行安装 ...

  2. java保留两位小数_java使double保留两位小数的多方法 java保留两位小数

    这篇文章主要介绍了java使double类型保留两位小数的方法,大家参考使用吧 mport java.text.DecimalFormat; DecimalFormat df = new Decima ...

  3. java保留二位小数_java使double保留两位小数的多方法 java保留两位小数

    复制代码代码如下: mport java.text.DecimalFormat; DecimalFormat    df   = new DecimalFormat("######0.00& ...

  4. java 保存2位小数_java 保留2位小数

    java 保留2位小数 java  保留2位小数  转载 方式一: 四舍五入 double   f   =   111231.5585; BigDecimal   b   =   new   BigD ...

  5. java 位运算_java学习之运算符与表达式(四)

    (6)位运算符 位运算是指对整数按二进制的位进行运算. 位运算用于整数或字符类型. 有7个:~(非).&(与).|(或).^(异或).<>(右移).>>>(无符号 ...

  6. java 取10位时间戳_java里Date 10位时间戳(Timestamp) String 相互转换

    有很多注释,就不做过多解释了 import java.sql.Timestamp; import java.text.DateFormat; import java.text.ParseExcepti ...

  7. java里相乘取两位小数_Java保留两位小数的几种做法

    在平时写程序的时,可以需要在界面或者页面上展示保留小数点后两位的数据.为了达到这样的展示效果,本文列举了几个方法: 使用java.math.BigDecimal 使用java.text.Decimal ...

  8. double取两位小数_Java语言中:float、double数据类型在内存中是如何存储的

    java语言中,float类型数字在计算机中用4个字节(32位)来存储.double类型占用8个字节(64位). 从存储结构和算法上来讲,double和float是一样的,不一样的地方仅仅是float ...

  9. java枚举类是什么_Java学习--常用类(2)、Math类、枚举类

    1.日期时间类 小知识:在我们日常生活所使用的计算机端时间,实际上是对某一个特定时间的计数,即我们现在的时间离特定时间的间隔,这个间隔被称之为时间戳(timestamp),这个特定时间是:1970-0 ...

最新文章

  1. Redis 分布式锁没这么简单,网上大多数都有 bug
  2. IPC之IPC_PRIVATE与ftok比较
  3. 开发时对业务技术框架的理解
  4. Linux umask 文件默认权限
  5. Struts2增删改查 myeclipse开发文档加项目源码及eclipse开发项目源码
  6. 2017.10.22 最多的方案 失败总结
  7. 【报告分享】bilibili2020年营销通案:激活年轻营销力.pdf(附下载链接)
  8. 从“三只小猪”的故事到“高性能”测试自动化
  9. 零基础学python实战-Python3零基础入门到爬虫实战
  10. 概率论在实际生活的例子_「收藏」不确定度是什么?两个例子让你清清楚楚
  11. android 4.4.2截屏方法,Android截屏截图的几种方法总结
  12. git拉代码错误Can't update:no tracked branch
  13. My Sunshine
  14. nacos connect timed out executing XXX
  15. Python安装word2vec
  16. 百度“文心一言”首批生态合作伙伴公布,Moka接入打造人力资源数字化人AI服务
  17. Houdini学习 —— 使用VOP进行陨石坑效果制作
  18. 电除尘器 matlab,电除尘用高频高压直流叠加高压脉冲电源的制作方法
  19. 天天刷 B 站,了解他们的评论系统是如何设计的吗?
  20. G6展示网络拓扑图,适配大数据量的方案

热门文章

  1. SQl注入靶场sqli——第一关
  2. 不同车型销售数据统计
  3. 戴尔r720服务器开机无信号输出,RE: R720服务器故障,不会排除,第一次用戴尔的服务器不会排除故障,求教,谢谢!...
  4. PD-1和PD-L1到底是什么?
  5. 解决Chrome 本地调试React,Sources下找不到源代码的问题
  6. ARP欺骗原理及欣向路由的先天免疫(转)
  7. 巴别鸟是如何用2个月时间让上市公司“爱上”它的?
  8. STL Commom Type
  9. tgp英雄联盟无法连接服务器未响应,英雄联盟开局后未响应,lol为什么玩着就未响应了...
  10. 掘金小册子mysql_掘金小册子