Java基础语法----5.运算符

5、运算符

Java语言支持的运算符

  • 算术运算符:+,-,*,/,%,++,–
  • 赋值运算符:=
  • 关系运算符:>,<,>=,<=,==,!=,instanceof
  • 逻辑运算符:&&,||,!
  • 位运算符:&,|,^,~,>>,<<,>>>
  • 条件运算符:?,:
  • 扩展赋值运算符:+=,-=,*=,/=

概念: java中用补码表示二进制数,补码的最高位是符号位,最高位为“0”表示正数,最高位为“1”表示负数。
正数补码为其本身;
负数补码为其绝对值各位取反加1;
例如:
​ +21,其二进制表示形式是00010101,则其补码同样为00010101
​ -21,按照概念其绝对值为00010101,各位取反为11101010,再加1为11101011,即-21的二进制表示形式为11101011

步骤:
​ 1、byte为一字节8位,最高位是符号位,即最大值是01111111,因正数的补码是其本身,即此正数为01111111,十进制表示形式为127
​ 2、最大正数是01111111,那么最小负是10000000(最大的负数是11111111,即-1)
​ 3、10000000是最小负数的补码表示形式,我们把补码计算步骤倒过来就即可。10000000减1得01111111然后取反10000000,因为负数的补码是其绝对值取反,即10000000为最小负数的绝对值,而10000000的十进制表示是128,所以最小负数是-128
​ 4、由此可以得出byte的取值范围是-128到+127
​ 5、说明:各个类型取值范围的计算方法与此大致相同,感兴趣的同学可以自己试着计算

在计算机内,定点数有3种表示法:原码、反码和补码

  • [原码]就是二进制定点表示法,即最高位为符号位,“0”表示正,“1”表示负,其余位表示数值的大小。
  • [反码]表示法规定:正数的反码与其原码相同;负数的反码是对其原码逐位取反,但符号位除外。
  • [补码]表示法规定:正数的补码与其原码相同;负数的补码是在其反码的末位加1。

字符串连接符 +

//字符串连接符  + ,在+两侧如果有String字符串,其运算方式是不同的
// + 前后有String字符串时,都按字符串计算
//注意:如果字符串在后边,则前面的表达式仍进行计算;如果在前面,则整个表达式按字符串连接
System.out.println(a+b);        //30
System.out.println(""+a+b);     //1020
System.out.println(a+b+"");     //30
System.out.println(a+b+""+a+b); //301020

三元运算符

//x ?y:z
//如果x==true,则结果为y,否则结果为z
int score = 80;
String type = score < 60 ? "不及格" : "及格";
System.out.println(type);

Java运算符的优先级

​ 下表中具有最高优先级的运算符在的表的最上面,最低优先级的在表的底部。

类别 操作符 关联性
后缀 () [] . (点操作符) 左到右
一元 expr++ expr– 从左到右
一元 ++expr --expr + - ~ ! 从右到左
乘性 * / % 左到右
加性 + - 左到右
移位 >> >>> << 左到右
关系 > >= < <= 左到右
相等 == != 左到右
按位与 左到右
按位异或 ^ 左到右
按位或 | 左到右
逻辑与 && 左到右
逻辑或 || 左到右
条件 ?: 从右到左
赋值 = += -= *= /= %= >>= <<= &= ^= |= 从右到左
逗号 左到右

提醒:多使用(),使得表达式的逻辑更清晰

------------------------------“笔记整理自跟着《狂神说Java》”----------------------------------

你可能感兴趣的:(java,开发语言,后端)