Java基础(运算符)

一、赋值运算符

  • 基本语法
    数据类型 变量名 = 数值/变量;
double num = 60.5;                           
double num2 = 70.5;                          
System.out.println("转换前1:"+num+"转换前2:"+num2);
                                             
double temp = num;                           
num = num2;                                  
num2 = temp;                                 
System.out.println("转换后1:"+num+"转换后2:"+num2);

二、算术运算符

  • 基本算数运算符
    +、- 、* 、/ 、% 、++、 --
// 变量++ :先操作在运算
// ++变量:先运算再操作
int num3 = 1;                       
System.out.println(num3++);     // 1
System.out.println(++num3);     // 3


int num = 326;
int bai = 326 / 100;
int shi = (326 % 100) / 10;
int ge = 326 % 10;
int sum = bai + shi + ge;
System.out.println("百位、十位、个位的和是:"+sum);
  • 复合算术运算符
    +=、 -= 、*=、 = 、%=

变量1 += 变量2 : 先求出变量1和变量2之和 ,再赋值给变量1

三、关系运算符

==、!=、>、 < 、>= 、<=

>、 < 、>= 、<=  只能用作数值比较
int a = 1;
int b = 2;
boolean flag = a==b;
System.out.println(flag); // fasle

四、逻辑运算符

  • 逻辑运算符只能用于boolean类型进行比较,判断boolean数据之间的逻辑关系(与、或、非)
    &(与)、|(或)、!(非)、&&(短路与)、||(短路或)
  • 变量1 & 变量2 : 只有当变量1和变量2都为true 结果为true 否则为false
  • 变量1|变量2:只要变量1和变量2只要有一个位true 结果为true 否则为false
  • !变量1 :若变量1为true 结果为false,若变量1为false 结果为true
  • 变量1&&变量2:只有当变量1和变量2都为true 结果为true 否则为false
  • 变量1||变量2:只要变量1和变量2只要有一个位true 结果为true 否则为false

&& 、|| 比 & 、| 效率高
&&:先判断变量1 ,如果变量1为false ,不进行变量2的运算,&不管变量1是否为false ,都进行变量2的运算。

int a = 1;
int b = 2;
System.out.println((a++ == b) & (++a == b)); // false a++ 先判断再++
System.out.println(a); // 3
int num1 = 1;
int num2 = 2;
System.out.println((num1++ == num2) && (++num1 == num2)); // false
 System.out.println(num1); // 2      

五、条件运算符(三元运算符、三目运算符)

根据不同的条件给同一个变量赋不同的值
变量=条件?值1:值2

int num = 1<2?1:0;
System.out.println(num); //1

六、位运算符

  • 十进制和二进制的转换

十进制转二进制:
目标数除以2,若能除尽,该位计作0,若除不尽,该位计作1,再对商除以2,若能除尽,该位计作0,若除不尽,以此类推,直到商为0,然后把每位结果进行反序组合

二进制转十进制:
从目标数的最右侧算起,本位的数值乘以本位的权重(2的第几位的位次-1次方),将每一位的值进行相加

  • 位运算符:&(按位与)、|(按位或)、^(按位异或)、<<(左移)、>>(右移)

变量1&变量2:先把变量1和变量2转为二进制,然后每一位的数字一一对应,进行比较判断,若都为1该位计作1,否则记为0

变量1|变量2:先把变量1和变量2转为二进制,然后每一位的数字一一对应,进行比较判断,只要有一个为1,该位计作1,否则计作0.

变量1^变量2:先把变量1和变量2转为二进制,然后每一位的数字一一对应,进行比较判断,对应位相同计作0,否则计作1

变量1 << 变量2:变量1乘以2的变量2次方
2 << 3 : 2*8 = 16

变量1 >> 变量2:变量1除以2的变量2次方
2 << 3:2/8 = 0

运算符优先级 :
! > 算数运算符 > 关系运算符 > 逻辑运算符(&& > ||)

你可能感兴趣的:(Java基础(运算符))