读书笔记——运算符

算术运算符

算术运算符有加减乘除 求余(+、-、*、/、%)

Java在计算算术表达式的值时,使用下列计算机精度规则:

①:如果表达式中有双精度浮点数(double型数据),则按双精度进行运算。

②:如果表达式中最高精度是单精度浮点数(folat型数据),则按单精度进行运算。

③:如果表达式中最高精度是long型整数,则按long精度进行运算。

④:如果表达式中最高精度是int型整数,则按int精度进行运算。

回忆:精度从“低”到“高”的排列顺序是byte、short、char、int、long、float、double。

总结:

位运算符

整型数据在内存中以二进制的形式表示,比如一个int型变量在内存中占4个字节,共32位。int型数据7的二进制表示为:

00000000 00000000 00000000 00000111

左边最高位是符号位,最高位是0表示正数,最高位是1表示负数。

二进制运算时,通常采用补码形式。正整数的补码与原码形式相同,负整数的补码:将这个负整数原码的绝对值的反码加1

int型数据-7的二进制表示:

11111111 11111111 11111111 11111001

 

①“按位与”运算符:

  “按位与”运算符用“&”表示。运算法则是:如果a、b两个数据的对应位都是1,则c的该位是1,否则都是0。

简单点举个例子:

    a:  00001110

&  b:  00101011


 

    c:  00001010

 

②“按位或”运算符:

  “按位或”运算符用“|”表示。运算法则是:如果a、b两个数据的对应位都是0,则c的该位是0,否则都是1。

    a:  00001110

|   b:  00101011


 

    c:  00101111

 

③“按位非”运算符:

  “按位非”运算符用“~”表示。运算法则是:如果a的对应位是0,则c的该位是1,如果a的对应位是1,则c的该位是0。

~     a:  00001110


 

          c:  11110001

 

④“按位异或”运算符:

  “按位异或”运算符用“^”表示。运算法则是:如果a、b两个数据的对应位相同,则c的该位是0,否则是1。

     a:  00001110

^   b:  00101011


 

     c:  00100101

 

“按位异或”运算符有几种常见用法(我目前只总结了两种,^…^汗颜^…^):

①利用“按位异或”运算的性质,对字符进行加密

/**
 *    @ClassName:     Test.java
 *    @Author:     ChiChing
 *    @Version:     2018年6月14日  下午6:55:03
 *    @Description:    
 **/
public class Test {
    public static void main(String[] args) {
        char a='',b='',c='',secret='C';
        System.out.println("原文:"+a+b+c);
        a=(char) (a^secret);
        b=(char) (b^secret);
        c=(char) (c^secret);
        System.out.println("密文:"+a+b+c);
    }
}

 

②交换变量值,而不使用中间变量

/**
 *    @ClassName:     Test.java
 *    @Author:     ChiChing
 *    @Version:     2018年6月14日  下午6:55:03
 *    @Description:    
 **/
public class Test {
    public static void main(String[] args) {
            int a=7,b=9;
            System.out.println("交换前:"+a+"--"+b);
            a=a^b;
            b=a^b;
            a=a^b;
            System.out.println("交换后:"+a+"--"+b);
    }
}

 

末尾

其余的运算符就长话短说了,看表:

优先级

描述

运算符

综合性

1

分隔符

[ ]、( )、.、,、;

 

2

对象归类,自增,自减,逻辑非

Instanceof、++、--、!

从右到左

3

算术乘、除运算

*、/、%

从左到右

4

算术加、减运算

+、-

从左到右

5

移位运算

>>、<<、>>>

从左到右

6

大小关系运算

<、<=、>、>=

从左到右

7

相等关系运算

==、!=

从左到右

8

按位与运算

&

从左到右

9

按位异或运算

^

从左到右

10

按位或运算

|

从左到右

11

逻辑与运算

&&

从左到右

12

逻辑或运算

||

从左到右

13

三目条件运算

?  :

从左到右

14

赋值运算

=

从右到左

posted @ 2018-08-01 10:24  留住思绪  阅读(200)  评论(0编辑  收藏  举报