运算符和表达式

来源:互联网 发布:混沌摆制作方法与数据 编辑:程序博客网 时间:2024/05/14 16:35

 单目(元)运算符   双目运算符   三目运算符

算术运算符  +  - * / %  加减乘除 求模

int a = 1;                                                                                                      int a = 2; 

int b =  ++a;                                                                                                 int b = a++ ;                                                      ++a>>>> b = a+1,a = 2  

System.out.println("b=" + b,"a =" + a);                                                    System.out.println("a = " + a,"b = " + b);     a++>>>>b=a=2  a=a+1=3

a=2  b=2                                                                                                       a = 3  b = 2

 

递增运算符++在操作数前则先加1后赋值,递增运算符在后则先赋值后加1

因为第一位是符号位,所以机器数的形式值就不等于真正的数值。例如上面的有符号数 10000011,其最高位1代表负,其真正数值是 -3 而不是形式值131(10000011转换成十进制等于131)。所以,为区别起见,将带符号位的机器数对应的真正数值称为机器数的真值。

 

位运算符      先转化成二进制再进行运算

&  与运算  同为1则为1,否则为0;                                                 例如   1 & 4 =====0

|    或运算 有一个为1就为1,否则为0;                                         例如    2 |  4=====6

! 非运算 正数的反码和补码都是原码     负数的反码是在其原码的基础上, 符号位不变,其余各个位取反.

[+1] = [00000001] = [00000001]

[-1] = [10000001] = [11111110]

可见如果一个反码表示的是负数, 人脑无法直观的看出来它的数值. 通常要将其转换成原码再计算.

根据运算法则减去一个正数等于加上一个负数, 即: 1-1 = 1 + (-1) = 0 , 所以机器可以只有加法而没有减法, 这样计算机运算的设计就更简单了.

 

byte a = 3;                                                  0000 0011      原码

byte b = !a;                                                 1111 1100       取非

system..out.println(“b=” + b);                1000 0011       取反

                                                                    1000 0100       取补

b=-4

 

数学运算符

数学运算,结果为一个数值。见下表:

QQ截图20150323163155

关系运算符

关系运算符与逻辑运算符,结果为一个布尔值。见下表:

QQ截图20150323163203

位运算符

位运算符对整数的二进制形式逐位进行逻辑运算,得到一个整数。见下表:

QQ截图20150323163209

1.与运算符

与运算符用符号“&”表示,其使用规律如下:
两个操作数中位都为1,结果才为1,否则结果为0,

2.或运算符

或运算符用符号“|”表示,其运算规律如下:
两个位只要有一个为1,那么结果就是1,否则就为0,

3.非运算符

非运算符用符号“~”表示,其运算规律如下:
如果位为0,结果是1,如果位为1,结果是0,

4.异或运算符

异或运算符是用符号“^”表示的,其运算规律是:
两个操作数的位中,相同则结果为0,不同则结果为1。

 

 

 

0 0