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

取余运算符%

如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. 【BZOJ】3527: [Zjoi2014]力(fft+卷积)
  2. 腾讯 AI Lab副主任俞栋:过去两年基于深度学习的声学模型进展
  3. VS 2003 源码配置管理(subversion+apache)
  4. python 大量网络请求_大规模异步新闻爬虫之网络请求函数的优化
  5. Ubuntu8.10安装Netbeans6.7中文乱码解决方案
  6. Nginx深入详解之模块化体系结构
  7. 今天拿到了同事给我买的《java与模式》
  8. linux 显示文件名写到txt,C++获取某个路径下所有文件的文件名,读写TXT文件到新的文件...
  9. 一次kafka的offset回退事件及相关知识点
  10. 水产饲料造粒机行业调研报告 - 市场现状分析与发展前景预测
  11. RiskSense Spotlight:全球知名开源软件漏洞分析报告
  12. java 8 API 开发文档中文
  13. 松柏先生:从《功守道》看电商品牌最后的机会!
  14. 智能点餐mysql框架图_SpringBoot微信点餐系统--P3数据库设计
  15. Rescue-Prime hash STARK
  16. 从输入网址到收到响应的详细过程
  17. 微信公众号运营策划方案书之公众号基础知识
  18. 操作系统作业之银行家算法(c语言实现)
  19. 嵌入式新闻早班车-第5期
  20. html网页开发入门

热门文章

  1. 浅谈电商核心「订单」业务如何设计
  2. 32位和64位编译器下的常见类型大小
  3. mac 文本编辑器 文本编码Unicode utf-8 不适用的问题
  4. 到底如何选择阿里云服务器?
  5. BigDecimalUtil
  6. 最全综述 | 医学图像处理
  7. Android疯狂连连看游戏
  8. 在谷歌急速浏览器菜单中隐藏的东西去哪里了_有哪些惊艳到你,一用就上瘾的谷歌插件?...
  9. #c++程序语言设计戴波-
  10. UML建模——使用EA工具开发时序图实践及经验