java位运算符详解

Python019

java位运算符详解,第1张

运算符 含义 示例

~ 按位非(NOT) b = ~a

&按位与(AND) c = a &b

| 按位或(OR) c = a | b

^ 按位异或(XOR) c = a ^ b

>>右移 b = a >>2

>>>右移,左边空出的位以0填充 b = a >>>2

<<左移 b = a <<1

当然同样有 &=,|=,^=,>>=,>>>=,<<=。

有关这些操作的细节可以参看

www.pcvc.net/...id=247

位运算

前面介绍的各种运算都是以字节作为最基本位进行的。 但在很多系统程序中常要求在位(bit)一级进行运算或处理。C语言提供了位运算的功能, 这使得C语言也能像汇编语言一样用来编写系统程序。

一、位运算符C语言提供了六种位运算符:

&按位与

| 按位或

^ 按位异或

~ 取反

<<左移

>>右移

1. 按位与运算 按位与运算符"&"是双目运算符。其功能是参与运算的两数各对应的二进位相与。只有对应的两个二进位均为1时,结果位才为1 ,否则为0。参与运算的数以补码方式出现。

例如:9&5可写算式如下: 00001001 (9的二进制补码)&00000101 (5的二进制补码) 00000001 (1的二进制补码)可见9&5=1。

按位与运算通常用来对某些位清0或保留某些位。例如把a 的高八位清 0 , 保留低八位, 可作 a&255 运算 ( 255 的二进制数为0000000011111111)。

main(){

int a=9,b=5,c

c=a&b

printf("a=%d\nb=%d\nc=%d\n",a,b,c)

}

2. 按位或运算 按位或运算符“|”是双目运算符。其功能是参与运算的两数各对应的二进位相或。只要对应的二个二进位有一个为1时,结果位就为1。参与运算的两个数均以补码出现。

例如:9|5可写算式如下: 00001001|00000101

00001101 (十进制为13)可见9|5=13

main(){

int a=9,b=5,c

c=a|b

printf("a=%d\nb=%d\nc=%d\n",a,b,c)

}

3. 按位异或运算 按位异或运算符“^”是双目运算符。

1.运算符

1)算术运算符

+-*/%++--

+:如果有加数为“”(字符串),表示连接

%:2%1 0

++:自增1 num++:先参与运算,然后在自增 ++num:先自增,再参与运算

--:自减1  num-- --num

2)赋值运算符

=   += -= *= /= %=......

num=3;

+=  num+=3=>num=num+3

左边?=右边=>左边=左边?右边

3)关系运算符

==!=><>=<=

表达式的结果为:boolean类型

==:用来判断两个数是否相等

4)逻辑运算符

&&||!^&|

结果类型:boolean类型

与:串联,并且

或:并联,或者

非:取反

异或:不同为真,相同为假

与:&& &区别:

&&:短路与,如果第一个能判断出结果,则云南电脑培训http://www.kmbdqn.cn/认为后面的不再判断

&:所有的都会判断

|| |区别:同上面

5)位运算符:

&|~^ <<>> >>>

对数值按位操作:

6&3

00000110

&00000011

00000010

<<:2<<3=>16补0

>>:16>>2=>4:正数补0,负数补1

>>>:补0

三目运算符:

?:

条件表达式?结果1:结果2;

如果表达式结果为true:结果为结果1

否则为结果2

1>2?1:0结果为0

&是位操作符,“按位与”;1转成二进制 01;2转成二进制 10;a&b=00转成十进制为0。

位运算符有:&(按位与)、|(按位或)、^(按位异或)、~ (按位取反)。优先级从高到低,依次为~、&、^、|。

按位与运算有两种典型用法,一是取一个位串信息的某几位,如以下代码截取x的最低7位:x &0177。二是让某变量保留某几位,其余位置0,如以下代码让x只保留最低6位:x = x &077。

Java 的表达式就是用运算符连接起来的符合Java 规则的式子,运算符的优先级决定了表达式中运算执行的先后顺序。

扩展资料:

整数算术运算的异常是由于除零或按零取模造成的。它将引发一个算术异常。下溢产生零,上溢导致越界。例如:加1超过整数最大值,取模后,变成最小值。

一个op=赋值运算符,和上表中的各双目整数运算符联用,构成一个表达式。整数关系运算符<,>,<=,>=,==和!=产生boolean类型的数据。