java基础知识 | 青训营笔记

164 阅读5分钟

这是我参与「第四届青训营 」笔记创作活动的第10天

一.运算符

运算符:一种特殊符号,用以表示数据的运算、赋值和比较数与整数

运算符分类:算术运算符、赋值运算符、比较运算符、逻辑运算符、三元运算符

image.png

1.赋值运算符

image.png

2.比较运算符

image.png

3.逻辑运算符

image.png

4.三元运算符

条件表达式b?x:y;,先计算条件b,然后进行判断。如果b的值为true,计算x的值,运算结果为x的值;否则,计算y的值,运算结果为y的值。

二.运算

前++:先自增1,后运算

后++:先运算,后自增1

int a1=10;
int b1=++a1;
System.out.println("a1 = " + a1 ", b1 = " + b1);

int a2 = 10;
int b2 = a2++;
System.out.println("a2 = " + a2 + ",b2 = " + b2);

2.与运算

 一、运算规则

    两个数相同位置的比特进行与运算,若两个位置均为1,那么结果就为1,否者为0  二、运算流程   以 4 & -5 = 0为例子展示运算流程:

  1. 因为4为正数,所以原码和补码相同,即4的补码为:00000000 0000000 00000000 00000100

  2.因为-5为负数,所以需要进行原码 >>> 反码 >>> 补码的转换

    1)原码:10000000 00000000 00000000 00000101

    2)反码:11111111 11111111 11111111 11111010

    3)补码:11111111 11111111 11111111 11111011

  3.将4和-5的补码进行

& 运算:00000000 0000000 00000000 00000100

                11111111 11111111 11111111 11111011 &

               00000000 00000000 00000000 00000000

  4.得到的补码结果为:00000000 00000000 00000000 00000000。所以结果为0

3.异或运算

  一、运算规则

    两个数相同位置的比特进行或运算,若两个数均为0或1,则结果为0,否者为1.

二、运算流程

    以 1 ^ -5 = 6 为例,具体运算流程如下:

    1.1的补码为:00000000 00000000 00000000 00000001

    2.-5的补码为:11111111 11111111 11111111 11111011(可参考与运算给出的流程)

    3.两个补码运算:  

          00000000 00000000 00000000 00000001

        ^ 11111111 11111111 11111111 11111011

          11111111 11111111 11111111 11111010

    4.得到的补码结果为:11111111 11111111 11111111 11111010

    5.补码为负数,需要转换成原码:

      1)补码:11111111 11111111 11111111 11111010

      2)反码:11111111 11111111 11111111 11111001

      3)原码:10000000 00000000 00000000 000000110

    6.由原码:10000000 00000000 00000000 000000110,得出最终的时间结果为 -6.

4.取反运算

一、运算规则

    若位数为0,则取反后为1,若为1,取反后为0。

二、运算规则

    以~2 = -3为例运算流程如下:

    1.2的原码为:00000000 00000000 00000000 00000010

    2.2的补码跟原码一致也为:00000000 00000000 00000000 00000010

    3.取反:111111111 11111111 11111111 11111101

    4.取反后的结果仍未补码,此时补码为负数,则需要转成原码

    5. 11111111 11111111 11111111 11111101 - 1 得到反码:11111111 11111111 11111111 11111100

    6. 11111111 11111111 11111111 11111100 符号位不变,其他位置取反得到原码为:10000000 00000000 00000000 00000011

    7. 10000000 00000000 00000000 00000011 转成十进制结果为 -3

三.总结

今天就介绍些基础知识,更详细的东西以后再慢慢更新!