热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

java取余位运算_java位运算基础(不定期更新)

一般情况下,编写web应用可能很少接触到位运算场景,但是一旦编写偏底层的框架如hadoopipc、lucene、数据压缩等位运算必须熟练掌握。1、按位取

一般情况下,编写web应用可能很少接触到位运算场景,但是一旦编写偏底层的框架如hadoop ipc、lucene、数据压缩等位运算必须熟练掌握。

1、按位取反(~)

将每个位的值1变0,0变1。如byte val=1;   那么~val=-2。由于java采用补码,如果需要得到正数的负数就需要将正数按位取反再加1,可以验证-val=~val+1=-1。

2、按位异或(^)

只有位的值不同才等于1否则为0。如0000_0001^0000_0010=0000_0011。小技巧a ^ -1 ^ -1 =a,在zigzag编码中有实际应用。事实上a^b^b=a。证明:假设只考虑1位的情况,令a=0,若b=1则c=a^b=1  , c^b=0=a;

若b=0则c=a^b=0 ,c^b=0=a;

令a=1,若b=1则c=a^b=0  , c^b=1=a;

若b=0则c=a^b=1 ,c^b=1=a;

3、按位与(&)

只有位上值都为1时才等于1否则为0。 0&0=0;    1&1=1;    1&0=0;    0&1=0;

4、按位或(|)

其中有一位数值为1结果等于1否则为0。1 | 0=1;0 | 1=1;0|0=0; 1| 1=1;

5、移位运算

不管是左移、右移、还是无符号右移,对于移动的位数超过32或者64时,都是对32或者64取余后的数进行移位的。右移相当于作除法运算不会改变运算符号,正数右移到最后会变成0,负数右移到最后会变成-1。无符号右移对于负数而言就不同了,因为它始终在最前面补0,那么负数最后会变成正数,移到最后也会变成0。



推荐阅读
  • 本文回顾了作者在求职阿里和腾讯实习生过程中,从最初的迷茫到最后成功获得Offer的心路历程。文中不仅分享了个人的面试经历,还提供了宝贵的面试准备建议和技巧。 ... [详细]
  • MVC框架下使用DataGrid实现时间筛选与枚举填充
    本文介绍如何在ASP.NET MVC项目中利用DataGrid组件增强搜索功能,具体包括使用jQuery UI的DatePicker插件添加时间筛选条件,并通过枚举数据填充下拉列表。 ... [详细]
  • 本文档提供了详细的MySQL安装步骤,包括解压安装文件、选择安装类型、配置MySQL服务以及设置管理员密码等关键环节,帮助用户顺利完成MySQL的安装。 ... [详细]
  • jquery java 文件上传_jQuery文件上传
    插件描述:这是一个文件上传的展示,看很多插件,并不满意就自己写了一个,可能兼容性不是很好,没有准确进行测试过& ... [详细]
  • 本文介绍了多种Eclipse插件,包括XML Schema Infoset Model (XSD)、Graphical Editing Framework (GEF)、Eclipse Modeling Framework (EMF)等,涵盖了从Web开发到图形界面编辑的多个方面。 ... [详细]
  • 本文详细介绍了利用JavaScript实现的五种不同的网页弹出窗口技术,包括全屏窗口、全屏模式窗口、带收藏链接工具栏的窗口、网页对话框及HTA窗口。 ... [详细]
  • 对于初次购买阿里云服务器的新手用户来说,如何高效地利用服务器资源并成功部署网站是一个重要的课题。本文将详细指导您完成从购买服务器到网站上线的六个关键步骤。 ... [详细]
  • 本文详细介绍了Spring AOP注解的基本概念及其实现方式,并通过实例演示了如何在项目中使用这些注解进行面向切面的编程。旨在帮助开发者更好地理解和运用Spring AOP功能。 ... [详细]
  • 如何在U8系统中连接服务器并获取数据
    本文介绍了如何在U8系统中通过不同的方法连接服务器并获取数据,包括使用MySQL客户端连接实例的方法,如非SSL连接和SSL连接,并提供了详细的步骤和注意事项。 ... [详细]
  • 深入解析:存储技术的演变与发展
    本文探讨了从单机文件系统到分布式文件系统的存储技术发展过程,详细解释了各种存储模型及其特点。 ... [详细]
  • 深入探讨Web服务器与动态语言的交互机制:CGI、FastCGI与PHP-FPM
    本文详细解析了Web服务器(如Apache、Nginx等)与动态语言(如PHP)之间通过CGI、FastCGI及PHP-FPM进行交互的具体过程,旨在帮助开发者更好地理解这些技术背后的原理。 ... [详细]
  • electronvue使用electronupdater实现自动更新
    今天呢,给大家带来一篇干货满满的electron-vue自动升级的教程,话不多说,开始我的表演!配置文件package.jsonbu ... [详细]
  • VMware 15.5.7 中文版激活方法
    本文提供了一种有效的方法来激活 VMware 15.5.7 的中文版本,同时介绍了如何利用最新的激活码进行操作,确保用户能够顺利使用。 ... [详细]
  • HBase 数据复制与灾备同步策略
    本文探讨了HBase在企业级应用中的数据复制与灾备同步解决方案,包括存量数据迁移及增量数据实时同步的方法。 ... [详细]
  • 本文介绍了如何在 MapReduce 作业中使用 SequenceFileOutputFormat 生成 SequenceFile 文件,并详细解释了 SequenceFile 的结构和用途。 ... [详细]
author-avatar
轻梦云裳_904
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有