`
stulance
  • 浏览: 31214 次
  • 性别: Icon_minigender_1
  • 来自: 深圳
社区版块
存档分类
最新评论

【基础知识--java】java 逐位运算符(& | >>)

阅读更多

 

转自:http://demojava.iteye.com/blog/1367827

备用 

运算符归类:

一元运算符:逻辑运算符(!),非运算符(~)

二元运算符:复制运算符(=),逻辑与运算符(&&),逻辑或运算符(||),

逐位与运算符(&),逐位或运算符(|),右移运算符(>>)

三元运算符:X?Y:Z;

逐位运算符

 逐位运算符是一种比较复制的运算符。可以分为逐位逻辑运算符,逐位位移运算符两种。 无论那种逐位运算符,都必须将操作数要求是整形的操作符,转换为32位的二进制数值。然后参与运算,运算完毕将结果转换成十进制数据.

1.逐位 与 运算符

逐位 与 运算符(&)是一个二元运输符,该运算符可以将左右两个操作数据逐位执行And的操作

  即只有2个操作数据中的对应的位数都加1是,该结果中的的这一位才是1,否则就是0,如下代码:

 

int s=9&12; //结果是8
int s1=1&15; //结果是1

 


 

图解:在进行逐位 与操作时,逐位与运算符会将10进制的数据转换成2进制的数据,在将2进制的数据转中的每一位数值逐位进行and操作,的出结果后将结果转换成10进制的数据。

2.逐位 或 运算符

逐位或运算符(|)和逐位与运算符类似,可以将左右两个操作符逐位都执行OR操作,两个操作中的相对位的只要有一个为1的时,该结果的这一位就是1,其他就是0。

 

int s=9|12; //结果是13
int s1=1|15; //结果是15
 

 

图解:在进行逐位或操作的时候,逐运算或将10进制的操作数据转换成2进制的数据,在将2进制的数据中的每一位数值逐位进行OR操作,得出的结果将家恶果转换成10进制的。

3.逐位 异或 运算符

逐位异或运算符(^)和逐位与运算符类似,可以将左右2个操作数逐位执行异或运算,所谓异或操作是指,将第1个操作数和第2个操作数相对应的为上的2个数值

 

int s=9^12; //结果是5
int s1=1^15; //结果是14
 


 

4逐位 非运算符

逐位非运算符(~)是一元运算符,作用与操作数据之前,可以将操作数据中的所有位数中的数值取反,在java中对于一个带符号的整数进行逐位非运算符。相当于将该整数改变符号,然后在减1。

 

int s=~12; //结果是-13
	int s1=~-15; //结果是14
 

 

 

图解:简单来说,逐位非运算,相当于将该整数改变符号再减1

5左移运算符

左移运算符(<<)是一个二元运算符,可以将1个操作数据中的所有数值,

(一共32位),向左移动,移动的位数由第2个操作数决定,因此第2个操作数应该是0~31的整数,如果第2个操作数据大于31,那么结果就是第一个数据

 

int s=12<<1; //结果是24
int s1=15<<13; //结果是122880
 

 

图解:是将一个值左移1位,相当于将该数值乘以2;左移2位,相当于将该数值乘以4。

6带符号的右移运算符

带符号的右移运算符(>>) 是一个二元操作符,可以将第1个操作数据中的所有数值(一共32位)向右移动,移动的位数由第2个操作数据来决定,因此第2个操作数据应该是0~31的整数,如果第2个操作数据大于31,那么结果就是第一个数据。

 

int s=12<<1; //结果是6
int s1=-12<<1; //结果是-6

  


 

 

图解:是将一个值带符号右移1位,相当于该数据的值除以2(去掉余数),右移2位相当于将该数据除以4, (去掉余数),

7用0补足的右移运算符

用0补足的右移运算符(>>>)与带符号的左移运算符类似,只是在右移的时候,最左侧的数值都是用0来补充。

 

int s=12>>>1; //结果是6
int s1=-12>>>1; //结果是2147483642
 

 

图解:在进行用0不足的右移操作时,用0补足的右移运算符会将第一位的操作符转换成2进制的数据,在根据第2个操作数据来决定右移 位数,如果第2个操作数据是1,则将第一个操作数中的所有位数都右移1位,即第32位变成31位,第31位变成30位,依次类推,

8三元运算符(条件运算符?:)

条件运算符(?:)必须有3个操作数据,第一个操作数据必须是boolean的表达式,

而第二个操作数据是Y,和第3个操作数据Z可以是任何的类型的数值

X?Y:Z

   String demo=true?”demo”:”Test”; //结果是demo

               

 

分享到:
评论
1 楼 hebe_lan 2012-11-20  
你好,我是一名将入职大展的软件测试工程师,女,5年工作经验  去深交所那边的性能  不知道怎么样 那边稳定否,,,,  在以下网站http://www.iteye.com/topic/1112086看到你的评论了,,
希望能得到你真实的回复。

相关推荐

    java 基础知识-运算符

    java基础 小白必须熟练掌握的知识,基础中的基础!!!

    Java基础知识:运算符

    Java基础知识:运算符

    计算机程序设计(Java)-教案--单元二--Java语言开发基础.docx.docx

    课程名称 Java程序设计 教师姓名 专业班级 授课时间 授课地点 学时数 8 授课题目 §2Java语言开发基础 教学目标及要求 知识目标 掌握Java语言的基本组成; :・掌握数据类型、变量、运算符及表达式; :・掌握三种...

    java运算符PPT

    java运算符PPT,描述的是运算符等java基础知识,而后表达式,流程控制等

    教学课件+Java基础知识+PPT课程+Java教学

    Java基础知识课件 1. 引言 Java是一种广泛使用的编程语言,以其跨平台兼容性和健壮性而闻名。Java最初由Sun Microsystems(现为Oracle Corporation的一部分)开发,并于1995年发布。 2. Java的特点 -跨平台兼容性:...

    Java基础之运算符

    本资源详细总结了java里面的运算符的使用,对java的一些基本知识进行了详细的描述,都是本人的学习笔记。还附有程序段以及实验结果可以进行说明

    Java程序设计基础:逻辑运算符.pptx

    逻辑运算符 目录 课程导入 掌握逻辑运算符的运算规则 能使用逻辑运算符组合条件 已知一个三角形的三条边长已经存放在变量a,b,c中,如何确定这个三角形能成立呢?条件如何写? 引入 a c b a+b&gt;c , a+c&gt;b , b+c&gt;a a+...

    动力节点JAVA完美学习课程 JAVA黄埔军校2018年最新JAVA夜校班全程班视频教程 1-56部分.txt

    2. 课程包含: JDK安装、开发环境搭建,java编程基础知识,分支语句、循环语句、封装、继承、多态等并配备相应练习题,希望对大家有所帮助。 PS:只做java是动力节点的战略布局,让每位初学者顺利入门是动力节点零...

    corejava基础重要知识点总结

    PATH=C:\Program Files\Java\jdk1.6.0_45\bin(javac.exe-&gt;编译指令 java.exe -》运行指令) CLASSPATH:类加载器使用 让类加载器明确去哪里加载.class文件 通常不需要设置 默认值:. .:当前目录(.java) ...

    java-数据类型转换、运算符、方法入门_java_

    java基础知识之数据类型转换、运算符等的入门级资料,具有一定的参考价值

    Java+Java基础知识+基本概念+运算符+判断和循环+循环高级和数组+方法+综合练习+面向对象+面向对象综合熏硫胺+字符串等

    Java基础知识,其中包括基本概念+运算符+判断和循环+循环高级和数组+方法+综合练习+面向对象+面向对象综合训练+字符串+集合&学生管理系统+学生管理系统升级版+面向对象进阶(static&继承+多态+包&final&权限+抽象类&...

    java基础知识-equals的使用

    equals() 是 Java 中的一个方法,用于比较对象是否相等。它是 Object 类的方法,在许多类中都可以使用。 在默认情况下,equals() 方法用于比较两个对象的引用是否相等,即判断它们是否指向同一个内存地址。这是通过...

    day03-基础语法-运算符

    小白新人,基础java知识分享

    java教程基本-java基础知识一

    Java 简介 ...Java 基础语法 Java 基本数据类型 Java 变量 Java 条件语句 Java 循环语句 - for, while 及 do…while Java 对象和类 下期预告: Java 运算符 Java 集合 字符串的运算(String) 。。。。。。

    Java编程语言的基础知识作了一个较为全面的汇总-供大家学习研究参考

    1、Java主要特点 2、计算机的高级汇编语言类型: 3、JVM(Java Visual Machine) 4、编写第一个Java程序并运行 5、CLASSPATH指的是类加载路径 6、程序注释,对以后的所有代码都要进行注释,主页可以方便进行开发需求 ...

    Java 2核心技术,卷I:基础知识(第七版).part2

    Java基本的程序设计结构&lt;br&gt;3.1 一个简单的Java应用程序&lt;br&gt;3.2 注释&lt;br&gt;3.3 数据类型&lt;br&gt;3.4 变量&lt;br&gt;3.5 运算符&lt;br&gt;3.6 字符串&lt;br&gt;3.7 输入输出&lt;br&gt;3.8 控制流程&lt;br&gt;3.9 大数值&lt;br&gt;3.10 数组&lt;br&gt;第4章 对象与类&lt;br...

    Java 2核心技术,卷I:基础知识(第七版).part3

    Java基本的程序设计结构&lt;br&gt;3.1 一个简单的Java应用程序&lt;br&gt;3.2 注释&lt;br&gt;3.3 数据类型&lt;br&gt;3.4 变量&lt;br&gt;3.5 运算符&lt;br&gt;3.6 字符串&lt;br&gt;3.7 输入输出&lt;br&gt;3.8 控制流程&lt;br&gt;3.9 大数值&lt;br&gt;3.10 数组&lt;br&gt;第4章 对象与类&lt;br...

    Java基础知识练习题

    关于Java基础知识的练习题。 压缩包内附有题目和参考答案,参考答案为我本人所写。 现需要它的朋友提供。

    Java基础知识点.html

    跳转控制语句 三元运算符 逻辑运算符 短路逻辑运算符 数组 方法简述 switch语句 if语句 关系运算符 自增自减运算符 赋值运算符 算术运算符 类型转换 Java简述 标识符 变量 数据类型 常量 关键字

    Java 2核心技术,卷I:基础知识(第七版).part1

    Java基本的程序设计结构&lt;br&gt;3.1 一个简单的Java应用程序&lt;br&gt;3.2 注释&lt;br&gt;3.3 数据类型&lt;br&gt;3.4 变量&lt;br&gt;3.5 运算符&lt;br&gt;3.6 字符串&lt;br&gt;3.7 输入输出&lt;br&gt;3.8 控制流程&lt;br&gt;3.9 大数值&lt;br&gt;3.10 数组&lt;br&gt;第4章 对象与类&lt;br...

Global site tag (gtag.js) - Google Analytics