`
z276356445t
  • 浏览: 150942 次
  • 性别: Icon_minigender_1
  • 来自: 重庆
社区版块
存档分类
最新评论

Java中的位运算<转>

阅读更多
本文章转自:http://www.blogjava.net/rosen/archive/2005/08/12/9955.html
移位运算符

    包括:
    “>> 右移”;“<< 左移”;“>>> 无符号右移”
    例子:
-5>>3=-1
1111 1111 1111 1111 1111 1111 1111 1011
1111 1111 1111 1111 1111 1111 1111 1111
//其结果与 Math.floor((double)-5/(2*2*2)) 完全相同。

-5<<3=-40
1111 1111 1111 1111 1111 1111 1111 1011
1111 1111 1111 1111 1111 1111 1101 1000
//其结果与 -5*2*2*2 完全相同。

5>>3=0
0000 0000 0000 0000 0000 0000 0000 0101
0000 0000 0000 0000 0000 0000 0000 0000
//其结果与 5/(2*2*2) 完全相同。

5<<3=40
0000 0000 0000 0000 0000 0000 0000 0101
0000 0000 0000 0000 0000 0000 0010 1000
//其结果与 5*2*2*2 完全相同。

//-5>>>3=536870911     
1111 1111 1111 1111 1111 1111 1111 1011
0001 1111 1111 1111 1111 1111 1111 1111


无论正数、负数,它们的右移、左移、无符号右移 32 位都是其本身,比如 -5<<32=-5、-5>>32=-5、-5>>>32=-5。
一个有趣的现象是,把 1 左移 31 位再右移 31 位,其结果为 -1。
0000 0000 0000 0000 0000 0000 0000 0001
1000 0000 0000 0000 0000 0000 0000 0000
1111 1111 1111 1111 1111 1111 1111 1111


位逻辑运算符

    包括:
    & 与;| 或;~ 非(也叫做求反);^ 异或

    “& 与”、“| 或”、“~ 非”是基本逻辑运算,由此可以演变出“与非”、“或非”、“与或非”复合逻辑运算。“^ 异或”是一种特殊的逻辑运算,对它求反可以得到“同或”,所以“同或”逻辑也叫“异或非”逻辑。

例子:
5&3=1
0000 0000 0000 0000 0000 0000 0000 0101
0000 0000 0000 0000 0000 0000 0000 0011
0000 0000 0000 0000 0000 0000 0000 0001

-5&3=3
1111 1111 1111 1111 1111 1111 1111 1011
0000 0000 0000 0000 0000 0000 0000 0011
0000 0000 0000 0000 0000 0000 0000 0011

5|3=7
0000 0000 0000 0000 0000 0000 0000 0101
0000 0000 0000 0000 0000 0000 0000 0011
0000 0000 0000 0000 0000 0000 0000 0111

-5|3=-5
1111 1111 1111 1111 1111 1111 1111 1011
0000 0000 0000 0000 0000 0000 0000 0011
1111 1111 1111 1111 1111 1111 1111 1011

~5=-6
0000 0000 0000 0000 0000 0000 0000 0101
1111 1111 1111 1111 1111 1111 1111 1010

~-5=4
1111 1111 1111 1111 1111 1111 1111 1011
0000 0000 0000 0000 0000 0000 0000 0100

5^3=6
0000 0000 0000 0000 0000 0000 0000 0101
0000 0000 0000 0000 0000 0000 0000 0011
0000 0000 0000 0000 0000 0000 0000 0110

-5^3=-8
1111 1111 1111 1111 1111 1111 1111 1011
0000 0000 0000 0000 0000 0000 0000 0011
1111 1111 1111 1111 1111 1111 1111 1000
分享到:
评论

相关推荐

    java应用软件程序设计

    ReadTestquestion&lt;br&gt;7.5. 课程设计作业&lt;br&gt;第8章 日历记事本&lt;br&gt;8.1. 设计内容&lt;br&gt;8.2. 设计要求&lt;br&gt;8.3. 总体设计&lt;br&gt;8.4. 具体设计&lt;br&gt;8.4.1. 运行效果与程序发布&lt;br&gt;8.4.2. 主类CalendarPad&lt;br&gt;8.4.3. 记事本...

    Java课程设计(代码+清单)

    ReadTestquestion&lt;br&gt;7.5. 课程设计作业&lt;br&gt;第8章 日历记事本&lt;br&gt;8.1. 设计内容&lt;br&gt;8.2. 设计要求&lt;br&gt;8.3. 总体设计&lt;br&gt;8.4. 具体设计&lt;br&gt;8.4.1. 运行效果与程序发布&lt;br&gt;8.4.2. 主类CalendarPad&lt;br&gt;8.4.3. 记事本...

    二级(Java语言程序设计)考试大纲

    &lt;font size="3"&gt;&lt;font color="#ff0000"&gt;考试内容 &lt;br /&gt;&lt;/font&gt;&lt;strong&gt;一、Java语言的特点和实现机制&lt;/strong&gt;&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;二、Java体系结构&lt;/strong&gt;&lt;br /&gt;&lt;br /&gt;1.JDK目录结构。&lt;br /&gt;2.Java的API结构...

    MYSQL

    &lt;br&gt;7.3.10 多列索引 &lt;br&gt;7.3.11 使用来自其他数据库引擎的列类型 &lt;br&gt;7.4 用在SELECT和WHERE子句的函数 &lt;br&gt;7.4.1 分组函数 &lt;br&gt;7.4.2 常用的算术运算 &lt;br&gt;7.4.3 位函数 &lt;br&gt;7.4.4 逻辑运算 &lt;br&gt;7.4.5 比较运算符 ...

    JSTL详细标签库介绍

    异常处理在java中原理:&lt;BR&gt;&lt;BR&gt;&lt;BR&gt;&lt;BR&gt;&lt;BR&gt;&lt;BR&gt;&lt;BR&gt;&lt;BR&gt;&lt;BR&gt;&lt;BR&gt;异常处理有Method调用者的调用者或者Method调用者来处理,&lt;BR&gt;9、 异常处理适用分别开发的组件系统&lt;BR&gt;10、 因为一些程序员使用不支持异常处理...

    Java课程设计报告书

    一、课程设计目的:&lt;br&gt;1. 学会Java程序开发的环境搭建与配置,并在实际运用中学习和掌握Java程序开发的全过程。&lt;br&gt;2. 进一步熟悉掌握Java程序设计语言的基础内容,如用户图形界面设计、Java多线程编程、Applet程序...

    JSP+Struts+JSTL+EL新闻发布系统jsp

    &lt;td width="594" height="16" valign="top" background="/images/index_13.jpg"&gt;&lt;script language='JavaScript' type='text/JavaScript' src='/Article/js/menu.js'&gt;&lt;/script&gt; &lt;script type='text/javascript' ...

    基于jsp+javabean+mysql三层结构的动态购物网站

    &lt;br&gt;&lt;br&gt;&lt;br&gt;&lt;br&gt;&lt;br&gt;本程序由“城市WebClub”独立自主开发,你可以对整个商城的版面甚至版权作任意修改,但传播本程序时,请保留本站的说明文件。&lt;br&gt;因为开发一个系统真的很痛苦!由于时间和水平关系,本系统还有...

    Java中的位运算

    Java的位运算

    java课程设计

    一. 功能简介 &lt;br&gt;&lt;br&gt;1. 在执行本程序时,能打开一个窗口编辑器。...&lt;br&gt;⑦在“工具”菜单中添加一个“计算器”菜单项,并实现一个计算器,该计算器除了能进行四则运算以外还可以实现复数运算功能。&lt;br&gt;&lt;br&gt;

    java课程设计windows窗口

    &lt;br&gt;3. 在该窗口中添加“文件”,“编辑”和“工具”三个菜单。&lt;br&gt;4. 在“文件”菜单中添加“打开”,“关闭”,“保存”,“退出”四个菜单项,分别实现他们的功能。&lt;br&gt;5. 在“编辑”菜单中添加“剪切”,...

    自测试卷5.doc1.简述C#、Java和C++的比较。 2.已知变量x的初值为24,则表达式x+=x--+=x%=17运算的结果值为( )。

    6.成员变量和成员方法前加static的作用是什么? 7.using和new有什么区别? 8.如何理解面向对象的多态性?...9.有一个泛型类class List&lt;T&gt;{},则...C)List&lt;T&gt; t=new List&lt;T&gt;(); D)List&lt;int&gt; t=new List&lt;int&gt;();

    LF-Spy(Java服务器探针)

    &lt;br&gt;&lt;br&gt;LF-Spy能够自动测试目标Java服务器的网络连接速度、MAC地址、服务器硬盘剩余空间、服务器运算能力、服务器的内存资源损耗、cpu占用率、硬盘大小、页面执行时间等参数。并提供服务器基本信息,服务器组件支持...

    JAVA位运算.pdf

    JAVA位运算.pdf ,深入了解java位运算

    字符串计算引擎

    2: 可以修改运算符的性质,你可以使得3*3=6,只要将*的运算类指向expression.DAdd就可以了,具体如何操作,ReadMe中有说明.&lt;br&gt; 3:可以使操作符运算具有多种形态。您即可以用“+”表示加法运算,也可以用&quot;加法&...

    MySQL中文参考手册.chm

    &lt;br/&gt;7.3.9 列索引 &lt;br/&gt;7.3.10 多列索引 &lt;br/&gt;7.3.11 使用来自其他数据库引擎的列类型 &lt;br/&gt;7.4 用在SELECT和WHERE子句的函数&lt;br/&gt;7.4.1 分组函数 &lt;br/&gt;7.4.2 常用的算术运算 &lt;br/&gt;7.4.3 位函数 &lt;br/&gt;7.4.4 逻辑...

    2009年软件设计师考试大纲<软考>

    2009年软件设计师考试大纲&lt;软考&gt; 一、考试说明  1.考试要求:  (1) 掌握数据表示、算术和逻辑运算;  (2) 掌握相关的应用数学、离散数学的基础知识;  (3) 掌握计算机体系结构以及各主要部件的性能和基本工作...

    位运算课件(java学习位运算课件)

    学习java编程,位运算的课件不好找。赶快下啊,系统的有根据的,美!!

    java位运算大全.doc

    java位运算大全.doc

Global site tag (gtag.js) - Google Analytics