欢迎来到天天文库
浏览记录
ID:9232666
大小:1.06 MB
页数:5页
时间:2018-04-24
《017java编程位运算符的用途》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库。
1、位运算符的用途位运算符中,除按位与和按位或运算符外,其他运算符只能用于整数间运算。位运算符是针对整数在内存中存储的二进制数据流中的位进行操作的,例如,表达式“2<<1”表示将整数2在内存中的二进制数据流向左移动一位,运算过程如图3.13所示。Java语言中的位运算符又分为按位运算符和移位运算符,下面分别进行介绍。整数2的二进制数据流表示执行表达式:2<<1二进制数据流向左移动1位表示十进制整数4图3.13表达式“2<<1”的运算过程1.按位运算符按位运算符是对整数的二进制数据流中的每个位进行运算,该运算符包括以下4种运算,分别为按位与运算、按位或运算、按位异或运算和按位取反运算,它们所对应
2、的运算符及运算规则如表3.8所示。表3.8按位运算符及运算规则序号运算运算符运算规则1按位与&0&0→01&1→10&1→01&0→02按位或
3、0
4、0→01
5、1→10
6、1→11
7、0→13按位异或^0^0→01^1→00^1→11^0→14按位取反~~0→1~1~0按位与运算,只有当两个二进制位数都为1时,结果才为1;按位或运算,只要有一个二进制位数为1,则结果为1;按位异或运算,两个二进制位数相同(同时为0或1)时,结果为0,否则为1;按位取反运算符为一元运算符,取反运算是将二进制中的0变为1,1变为0。【例3.17】下面举例说明按位运算符的用法。inta=5&-4;//整数5与-4的按位
8、与运算,结果为:4intb=3
9、6;//整数3与6的按位或运算,结果为:7intc=10^3;//整数10与3的按位异或运算,结果为:9intd=~(-14);//整数-14的按位取反运算,结果为:13代码中各表达式的运算过程分别如图3.14~图3.17所示。在Java中,可以将按位运算符与赋值运算符“=”组合为复合赋值运算符。【例3.18】复合赋值运算符的用法。intnum=5;num&=6;//等价于:num=num&6System.out.println(num);//运行结果为:4当按位与和按位或运算符两边的操作元为布尔数据时,运算符被视为逻辑运算符。例如,下面的表达式是合法的。i
10、nta=3;intb=9;System.out.println((ab));//输出布尔值falseSystem.out.println((a
11、((a+4)>b));//输出布尔值true知识点:1、位运算符中,除按位与和按位或运算符外,其他运算符只能用于整数间运算。位运算符是针对整数在内存中存储的二进制数据流中的位进行操作的。2、Java语言中的位运算符又分为按位运算符和移位运算符。3、按位与运算,只有当两个二进制位数都为1时,结果才为1;按位或运算,只要有一个二进制位数为1,则结果为1;按位异或运算,两个二进制位数相同(同时为0或1)时,结果为0,2否则为1
12、;按位取反运算符为一元运算符,取反运算是将二进制中的0变为1,1变为0。4、在Java中,可以将按位运算符与赋值运算符“=”组合为复合赋值运算符。5、当按位与和按位或运算符两边的操作元为布尔数据时,运算符被视为逻辑运算符。练习:1、位运算符中,除和运算符外,其他运算符只能用于整数间运算。位运算符是针对在内存中存储的中的进行操作的。2、Java语言中的位运算符又分为和。3、运算,只有当两个二进制位数都为1时,结果才为1;,只要有一个二进制位数为1,则结果为1;运算,两个二进制位数相同(同时为0或1)时,结果为0,否则为1;运算符为一元运算符,取反运算是将二进制中的0变为1,1变为0。4、在J
13、ava中,可以将按位运算符与赋值运算符“=”组合为。5、当按位与和按位或运算符两边的操作元为布尔数据时,运算符被视为。2.移位运算符移位运算符也是对整数的二进制表示中的位进行操作。Java中的移位运算符包括3种,分别为左移运算符、有符号整数的右移运算符和无符号整数的右移运算符,它们所对应的运算符及运算规则如表3.9所示。表3.9移位运算符及运算规则使用序号运算运算符运算规则(m和n均为整数)将整数m的二进制数向左移动整数n指定的位数,并用n个0补充二进制数尾。左移运算若n为非负数、m为正整数,则结果为m/2n%32;若m为1<14、如果m%2n%32结果为0,则num取值为m,否则num取值为最大的、小于m且能被2n%32除尽的数);若m为0,则结果为0。将整数m的二进制数向右移动整数n指定的位数,并用n个符号位补充二进制数的开头(负数的符号位为1,正数的符号位为0)。有符号右2>>m>>n若n为非负数、m为正整数,则结果为m/2n%32;若m为移运算符负整数,则结果为num/2n%32(num取值如下:如果m%2n%32结果为0,则num取值为m
14、如果m%2n%32结果为0,则num取值为m,否则num取值为最大的、小于m且能被2n%32除尽的数);若m为0,则结果为0。将整数m的二进制数向右移动整数n指定的位数,并用n个符号位补充二进制数的开头(负数的符号位为1,正数的符号位为0)。有符号右2>>m>>n若n为非负数、m为正整数,则结果为m/2n%32;若m为移运算符负整数,则结果为num/2n%32(num取值如下:如果m%2n%32结果为0,则num取值为m
此文档下载收益归作者所有