今天在学习hashmap源码时偶然看到这样一段代码:

    static final int hash(Object key) {int h;return (key == null) ? 0 : (h = key.hashCode()) ^ (h >>> 16);}

我当场失忆了,(h = key.hashCode()) ^ (h >>> 16)这是啥?很熟悉但是又想不起来是什么了(大佬不要笑我,我很菜的)。
吓得我马上去查了一下啊。

现在介绍一下这三个东西:异或,与,或;

一、异或(^)

以二进制的方式进行运算,同0异1,返回十进制数;比如14^10转化成二进制1110^1010结果为0100,也就是4;

二、与(&)
以二进制的方式进行运算,0&0=0,0&1=0,1&0=0,1&1=1,返回十进制数;比如14&10转化成二进制1110&1010结果为1010,也就是10;

三、或(|)
以二进制的方式进行运算,0|0=0,0|1=1,1|0=1,1|1=1,返回十进制数;比如14|10转化成二进制1110|1010结果为1110,也就是14;

非常简单的东西但是让很多像我这样使用不多的人经常忘记,所以写下来记录一下!

最后再说一个取余小技巧:

&是可以用来对2的n次方数取余的,比普通的%取余要快,但仅限于对2的n次方数取余,方法为数&2的n次方数-1;
比如:25&(16-1)(2的四次方)
计算过程:
11001&01111=1001(9)
至于为什么只能对2的n次方数取余,从计算过程就可以看出。

浅谈异或(^),与(),或(|)相关推荐

  1. 浅谈异或问题及其推论

    郑重声明,笔者对于本文仅探究相邻数异或结果是否为1及其限制性问题,如果有误,恳请指正. 首先,异或运算是二进制中的一种逻辑运算.(这里不进行过多赘述,具体运算规则请自行了解) 依据这个关系,对于自然数 ...

  2. 浅谈几种区块链网络攻击以及防御方案之日蚀攻击

    旧博文,搬到 csdn 原文:http://rebootcat.com/2020/04/12/network_attack_of_blockchain_eclipse_attack/ 写在前面的话 自 ...

  3. java对象头_浅谈java对象结构 对象头 Markword

    概述 对象实例由对象头.实例数据组成,其中对象头包括markword和类型指针,如果是数组,还包括数组长度; | 类型 | 32位JVM | 64位JVM| | ------ ---- | ----- ...

  4. java bitset用途_浅谈Java BitSet使用场景和代码示例

    搜索热词 @H_502_0@一.什么是BitSet? @H_502_0@ 注:以下内容来自JDK API: @H_502_0@ BitSet类实现了一个按需增长的位向量.位Set的每一个组件都有一个b ...

  5. 浅谈嵌套命名实体识别(Nested NER)

    ©PaperWeekly 原创 · 作者|张成蹊 单位|北京大学硕士生 研究方向|自然语言处理 序 命名实体识别(Named Entity Recognition, 下称 NER)任务,主要目的是从一 ...

  6. 教育教学知识与能力小学计算机,浅谈小学计算机教学论文

    在小学的教育中,计算机教学也成为了非常重要的教学内容,但是从现阶段小学计算机教学的实际情况看还存在很多需要去解决的问题,只有采取合理的对策和措施去有效解决当前存在的问题,才能有效提高小学计算机教学质量 ...

  7. python读取json数据格式问题_浅谈Python中的异常和JSON读写数据的实现

    异常可以防止出现一些不友好的信息返回给用户,有助于提升程序的可用性,在java中通过try ... catch ... finally来处理异常,在Python中通过try ... except .. ...

  8. ARM Cortex-M0(1)---浅谈ARM Cortex-M0

    浅谈ARM Cortex-M0 一.引言 ARM公司在2009年初发布了其嵌入式处理器系列中最小型.最低功耗的CortexM0处理器.CortexM0低功耗.高性能与极精简程序代码的特性,能应用于各种 ...

  9. 关于计算机运行管理模式,浅谈学校计算机机房管理及维护运行模式.docx

    浅谈学校计算机机房管理及维护运行模式 摘要:计算机辅助教学在学校的教学体系中占有重要地 位,计算机机房是学校教学和学生实践学习的重要学习场 所.合理的机房管理与维护模式,是提高学校教学质量和培 养学生 ...

最新文章

  1. 声卡硬件测试软件,RMAA声卡检测(RightMark Audio Analyzer)
  2. [leetcode] 367. Valid Perfect Square
  3. iphone4 短信截获
  4. axios的基本用法
  5. 05mycat父子表
  6. Java的oauth2.0 服务端与客户端的实现
  7. 大疆DJI Thermal SDK Linux编译
  8. python 进程池阻塞和非阻塞_Python协程还不理解?请收下这份超详细的异步编程教程!还没学会来找我!...
  9. [aminer] 2020清华大学人工智能发展报告pdf
  10. FFmpeg 视频处理工具讲解
  11. 射频基础之阻抗匹配与Smith图
  12. python 日期 格式转换 英文_python中各种时间格式的转换
  13. java链接Kepserver报错误码[0x8001FFFF]
  14. 中国互联网Web2.0 100名单
  15. 隐私保护之密码管理工具 KeePassXC
  16. 链新:探索NFT中国化路径,与实体经济相结合
  17. linux版uTorrent安装手记
  18. Map key 和 value 的输出;
  19. 0.0.1 NODEMCU-ESP8266-12F VER 0.1CH340G开发版V3 4线oled0.96寸屏天气时钟日记
  20. 简易付安装后无法使用

热门文章

  1. (转)Odoo 是什么?
  2. XNA + HLSL 之小小心得
  3. 出现k次和出现1次的数
  4. 通过PHP(socket_select)阻塞函数实现公共即时聊天
  5. word2vec 相关论文
  6. MySQL for Excel —— 用Excel方式操作MySQL
  7. IDEA解决配置文件属性提示消失
  8. 学习【瑞吉外卖⑥】SpringBoot单体项目_手机验证码登录业务开发
  9. Android 使用定位功能的坑
  10. 用termux运行python代码_没有电脑?不能运行代码?试试用手机搞定