- 浏览: 515624 次
- 性别:
- 来自: 杭州
文章分类
- 全部博客 (114)
- C基础 (1)
- C指针 (0)
- C语言库函数相关 (1)
- Linux (2)
- Linux网络编程 (1)
- PostgreSQL (0)
- Redis (2)
- Java Web (2)
- JAVA基础 (35)
- Ubuntu (8)
- Android (2)
- MySQL (3)
- 日志 (1)
- 书虫 (1)
- 数据结构 (0)
- 算法 (0)
- 开发工具 (1)
- 转载 (13)
- 英语 (18)
- tomcat启动脚本分析 (3)
- Oracle基础 (4)
- tomcat源码分析 (3)
- tomcat (1)
- Java相关 (1)
- Oracle基本原理--Oracle体系结构 (0)
- Oracle基本原理--表 (0)
- Oracle基本原理--索引 (0)
- Oracle基本原理--事务 (0)
- Oracle开发--SQL (1)
- Oracle基本原理--PL/SQL (0)
- Oracle基本原理--常用函数 (0)
- Oralce管理--用户及权限管理 (0)
- Oracle管理--安装调试 (0)
- Oracle管理--备份恢复 (0)
- Oralce管理--数据迁移 (0)
- Oracle管理--闪回 (0)
- Oracle管理--故障处理 (0)
- Oracle优化原理--统计信息 (0)
- Oracle优化原理--执行计划 (0)
- Oracle优化原理--诊断工具 (0)
- Oracle优化原理--深入理解表 (0)
- Oracle优化原理--深入理解索引 (0)
- Oracle优化原理--表连接原理 (0)
- Java--OOP (0)
- Java--异常 (0)
- Java--泛型 (0)
- Java--集合 (0)
- Java--IO (0)
- Java--枚举类型 (0)
- Java--注释 (0)
- Java--多线程 (0)
- Java--XML (0)
- Java--JDBC (3)
- Servlet (0)
- JSP (0)
- JSTL (0)
- 设计模式 (0)
- DAO与MVC (0)
- Javascript (2)
- Ajax (0)
- JQuery (0)
- HTML/CSS (0)
- 前端相关 (1)
- HTTP (0)
- TCP/IP (0)
- GO基础 (0)
最新评论
-
jsonmong:
推荐一个开发平台,采用的是插件化的设计思想,效果很不错的。ht ...
构建Java Web开发环境 -
wxm198427:
首先表示辛苦了!我想问个问题:我的是windows 7 x64 ...
Oracle 11g R2 for Win7旗舰版(64位)的安装步骤 -
握着橄榄枝的人:
我之前按照你的update mysql.user set pa ...
Windows7下MySQL5.5.20免安装版的配置 -
confident_f:
安装了32的客户端后,用plsql导入导出表有问题,生成不了d ...
Oracle 11g R2 for Win7旗舰版(64位)的安装步骤 -
confident_f:
安装数据库的时候第9步卡住了 是怎么回事呢?
Oracle 11g R2 for Win7旗舰版(64位)的安装步骤
位运算符除按位运算符中的按位与和按位或运算符外,其他的只能用于整数间的运算。位运算符是针对整数在内存中存储的二进制数据流中的位进行的操作。例如表达式“2<<1”表示将整数2在内存中的二进制数据流向左移动一位。运算过程如下:
Java语言中的位运算符又分为按位运算符和移位运算符,下面分别进行介绍。
1、按位运算符
按位运算符是将整数的二进制数据流中的每个位进行运算,该运算只包括以下4种:按位与运算、按位或运算、按位异或运算和按位取反运算,它们所对应的运算符及运算规则如下表1所示:
按位与运算,只有两个二进制位数都为1时结果才为1;按位或运算,只要有一个二进制位数为1则结果为1;按位异或运算,两个二进制位数相同(同时为0或1)时结果为0,否则为1;按位取反运算符为一元运算符,取反运算是将二进制中的0修改为1,1修改为0。
下面的代码显示了按位运算符的用法:
int a = 5 & -4;//整数5与-4的按位与运算,结果为:4
int b = 3 | 6;//整数3与6的按位或运算,结果为:7
int c = 10 ^ 3;//整数10与3的按位异或运算,结果为:9
int d = ~(-14);//整数-14的按位取反运算,结果为:13
代码中各表达式的运算过程分别如图1~4所示:
在Java中,按位运算符可以与赋值运算符“=”组合为复合赋值运算符,例如:
int num = 5;
num &= 6;//等价于:num = num & 6;
System.out.println(num);//运行结果为:4
当按位与和按位或运算符两边的操作元为布尔数据时,则被视为逻辑运算符。
例如以下的表达式是合法的:
int a = 3;
int b = 9;
System.out.println((a<b)&((a+4)>b));//输出结果:false
System.out.println((a<b)|((a+4)>b));//输出结果:true
2、移位运算符
移位运算符同样也是对整数的二进制中的位进行操作。Java中的移位运算符包括以下3种:左移位运算、有符号整数的右移位运算和无符号整数的右移位运算。它们所对应的运算符及运算规则如下表2所示:
通常整数n的取值是一个正数,如果为0则结果仍为m;如果为负数则等价于m/2d,其中d的取值为整数n类型的最小值的绝对值 – 整数n的绝对值。例如计算表达式“17>>-2 147 483 645”的结果,因为整数-2 147 483 645为int型,最小值为-2 147 483 648,所以m/2d中的d取值为2 147 483 648 – 2 147 483 645 = 3,所以表达式“17>>-2 147 483 648”等价于“17>>3”,最终结果为2。
下面的代码显示了移位运算符的用法:
int a = -2 <<3; //a的值为:-16,等价于(-2)*23
int b = 3 << -2147483646; //b的值为:12,等价于3*2147483646
int c = 15 >> 2; //c的值为:3,等价于15/22%32
int d = -31>>3; //d的值为:-4,等价于(-32)/23%32
int e = 4>>>2; //e的值为:1,等价于4/22%32
int f = -5>>>1; //f的值为:2147483645
代码中各表达式的运算符过程分别如图5~10所示:
Java语言中的位运算符又分为按位运算符和移位运算符,下面分别进行介绍。
1、按位运算符
按位运算符是将整数的二进制数据流中的每个位进行运算,该运算只包括以下4种:按位与运算、按位或运算、按位异或运算和按位取反运算,它们所对应的运算符及运算规则如下表1所示:
按位与运算,只有两个二进制位数都为1时结果才为1;按位或运算,只要有一个二进制位数为1则结果为1;按位异或运算,两个二进制位数相同(同时为0或1)时结果为0,否则为1;按位取反运算符为一元运算符,取反运算是将二进制中的0修改为1,1修改为0。
下面的代码显示了按位运算符的用法:
int a = 5 & -4;//整数5与-4的按位与运算,结果为:4
int b = 3 | 6;//整数3与6的按位或运算,结果为:7
int c = 10 ^ 3;//整数10与3的按位异或运算,结果为:9
int d = ~(-14);//整数-14的按位取反运算,结果为:13
代码中各表达式的运算过程分别如图1~4所示:
在Java中,按位运算符可以与赋值运算符“=”组合为复合赋值运算符,例如:
int num = 5;
num &= 6;//等价于:num = num & 6;
System.out.println(num);//运行结果为:4
当按位与和按位或运算符两边的操作元为布尔数据时,则被视为逻辑运算符。
例如以下的表达式是合法的:
int a = 3;
int b = 9;
System.out.println((a<b)&((a+4)>b));//输出结果:false
System.out.println((a<b)|((a+4)>b));//输出结果:true
2、移位运算符
移位运算符同样也是对整数的二进制中的位进行操作。Java中的移位运算符包括以下3种:左移位运算、有符号整数的右移位运算和无符号整数的右移位运算。它们所对应的运算符及运算规则如下表2所示:
通常整数n的取值是一个正数,如果为0则结果仍为m;如果为负数则等价于m/2d,其中d的取值为整数n类型的最小值的绝对值 – 整数n的绝对值。例如计算表达式“17>>-2 147 483 645”的结果,因为整数-2 147 483 645为int型,最小值为-2 147 483 648,所以m/2d中的d取值为2 147 483 648 – 2 147 483 645 = 3,所以表达式“17>>-2 147 483 648”等价于“17>>3”,最终结果为2。
下面的代码显示了移位运算符的用法:
int a = -2 <<3; //a的值为:-16,等价于(-2)*23
int b = 3 << -2147483646; //b的值为:12,等价于3*2147483646
int c = 15 >> 2; //c的值为:3,等价于15/22%32
int d = -31>>3; //d的值为:-4,等价于(-32)/23%32
int e = 4>>>2; //e的值为:1,等价于4/22%32
int f = -5>>>1; //f的值为:2147483645
代码中各表达式的运算符过程分别如图5~10所示:
- 位运算符.rar (14.4 KB)
- 下载次数: 3
发表评论
-
foreach循环
2013-06-24 16:15 1436从JDK1.5开始,Java提供了一个更简单的循环:forea ... -
可变参数
2013-06-24 15:38 1198从JDK1.5开始,Java允许使用可变参数为方法指定数量不确 ... -
泛型(core java 笔记)
2013-06-18 16:18 20251.为什么引入泛型 package generic; ... -
两个程序的说明
2010-10-19 09:26 11341、程序1的结果是: clas ... -
构造器初始化
2010-10-18 14:42 1482可以用构造器来进行初始化。在运行时刻,可以调用方法或执行某些动 ... -
成员初始化
2010-10-18 07:55 1200Java尽力保证:所有变量在使用前都能得到恰当的初始化。 对 ... -
线程的死锁
2010-10-11 19:21 1468当两个线程相互等待对方释放同步监视器时就会发生死锁,Java虚 ... -
线程的同步
2010-10-11 19:00 1250一个经典的关于线程安全性的问题:银行取钱问题。 银行取钱的基 ... -
java网站收集
2010-10-10 18:13 1231JAVA开发者最常去的25个英文网站:http://www.i ... -
控制线程
2010-10-10 16:06 19921、线程睡眠:sleep 如果我们需要让当前正在执行的线程暂 ... -
线程的状态
2010-09-28 19:00 1003线程从创建到执行完毕的整个过程称为线程的生命周期,在整个生命周 ... -
Java中Thread类的start()和run()的区别
2010-09-27 15:33 40831、start()方法来启动线程,真正实现了多线程运行,这时无 ... -
Java中创建线程的两种方法
2010-09-26 10:18 5615在Java中创建线程有两种方法:继承Thread类和实现Run ... -
创建String对象过程的内存分配小结
2010-09-23 20:32 2747常量池(Constant Pool):指的是在编译期被确定,并 ... -
Java堆和栈的区别 经典总结(转载)
2010-09-18 16:48 1243栈与堆都是Java用来在Ram中存放数据的地方。 与C++不 ... -
Java初学者都必须理解的七大问题
2010-09-18 10:36 1099问题一:我声明了什么 ... -
关于计算java程序运行时间(转载)
2010-09-18 09:22 1094//第一种,伪代码 long startTime= ... -
for循环的优化
2010-09-17 20:29 2112在程序中经常用到for循环,当一些算法实时性要求非常高时,对f ... -
详细解析Java中抽象类和接口的区别(转载)
2010-09-17 10:16 1080在Java语言中,abstract class和inter ... -
集合类(四):Map集合
2010-09-16 20:26 21225、Map集合 Map集合为映射类型,映射与集和列表有明显的区 ...
相关推荐
本文章是关于C语言逻辑运算符和位运算符总结。
位运算 位运算符和位运算位运算举例位段PPT课件.pptx
13.java位运算符.zip13.java位运算符.zip13.java位运算符.zip13.java位运算符.zip13.java位运算符.zip13.java位运算符.zip13.java位运算符.zip13.java位运算符.zip13.java位运算符.zip13.java位运算符.zip13.java位...
按位运算符允许按照位来操作整型变量。可以把按位运算符应用于任意signed和unsigned整型,包括char类型。但是,它们通常应用于不带符号的整型。 这些运算符的一个常见应用是在整型变量中使用单个的位存储信息。例如...
如何使用计算机语言实现二进制数的逆转,如1111001逆转为1001111
C语言关系运算符和位运算符PPT课件.pptx
算数运算符、递增递减运算符、比较运算符、逻辑运算符、三元运算符、字符串连接运算符、赋值运算符、位运算符
位运算符 C提供了六种位运算运算符;这些运算符可能只允许整型操作数,即char、short、int和long,无论signed或者unsigned。
C语言关系运算符和位运算符.ppt
位运算是指按二进制位进行的运算。因为在系统软件中,常要处理二进制位的问题。文章介绍位运算符和位运算,位运算举例,位段等
java位运算符&AND操作视频!!!!
位运算 位运算符和位运算位运算举例位段PPT学习教案.pptx
初学C语言的同学可能不太理解按位运算符,我这里收集了一些经典的按位运算的教材,教你如何理解运用按位运算,文件格式是文本文档的,希望对广大C语言爱好者有所帮助
javascript运算符——位运算符全面介绍.docx
java中的位运算符和运算符优先级.docx
C语言位运算符.rar
java位运算符.pdf
JS运算符—位运算符[归纳].pdf