算术运算符、数学函数Math、数据类型转换、自增自减运算符、关系逻辑运算符、位运算符、括号及运算符级别
文章目录
- 0.思维导图
- 1.算术运算符
- 2.数学函数与常量
- 3.数值类型之间的转换
- (1)定义数据类型后自动转换
- (2)二元运算时的自动转换
- (3)强制类型转换
- 4.结合赋值与运算符
- 5.自增与自减运算符
- 6.关系运算符与逻辑boolean运算符
- 7.位运算符
- 8.括号与运算符级别
0.思维导图

1.算术运算符
| 运算符 | 含义 |
|---|---|
| + | 加 |
| - | 减 |
| * | 乘 |
| / | 除 |
| % | 求余/取模 |

2.数学函数与常量
- Java 的 Math 包含了用于执行基本数学运算的属性和方法,如初等指数、对数、平方根和三角函数。
- Math 的方法都被定义为 static 形式,通过 Math 类可以在主函数中直接调用。
- Math类里面有两个常量e和π


- Math中还有许多的数学函数,这里只列取一部分,详情可参考jdk

3.数值类型之间的转换
(1)定义数据类型后自动转换
- 数值类型之间的转换就是自动将一种数据类型转换成另一种数据类型
- 数值类型之间自动转换时的表:

package JavaSE.Chapter3.Section35.cs352;public class mains {public static void main(String[] args) {/*可能会出现信息丢失的转换情况*/int a=1234567899;long b=1234567891234567891L;float fa=a,fb=b;//单精度浮点型只保留8位小数double da=a,db=b; //双精度浮点型只保留16位小数System.out.println(fa);System.out.println(fb);System.out.println(da);System.out.println(db);/*不会出现信息丢失的转换情况*/byte b1=123;short s1=b1;int i1=b1;long l1=b1;System.out.println(s1);System.out.println(i1);System.out.println(l1);short s2=12345;int i2=s2;long l2=s2;System.out.println(i2);System.out.println(l2);int i3=1234567891;long l3=i3;double d3=i3;System.out.println(l3);System.out.println(d3);char c1='A';int i4=c1;System.out.println(i4);float f1=123.12345f;double d4=f1;System.out.println(f1);System.out.println(d4);}
}

- 这里浮点型取值范围与计算机组成原理里面讲的IEEE754标准有关
(2)二元运算时的自动转换
- 此外两种不同类型的数据进行二元运算时,比如加减乘除,数据转换从位数少的数据类型向位数多的数据类型转换,然后再进行二元运算。
- 比如char是1个字节,int是4个字节,char+int,两种数据类型相加,得到的是一个整数。
char ch2='A';int i=1;double d1=100.11d;System.out.println(ch2+i);System.out.println(d1+i);System.out.println(d1+ch2);

(3)强制类型转换
- 比如说将double转换为int型,即不按照上面所提到的转换表表进行合法转换
- 强制类型转换将小数部分截去,将浮点值转换为整型值

- 如果试图将一个数值从一种类型强制转换为另一种类型, 而又超出了目标类型的表示范围,结果就会截断成一个完全不同的值

- 不要将boolean与其它数据类型进行转换
- 可以用条件转换
x? 1:0代替
4.结合赋值与运算符

5.自增与自减运算符
- x为+|-
- axx后缀和前缀xxa形式都会使变量值加 1 或减 1。但用在表达式中时,二者就有区别了。前缀形式会先完成加 1; 而后缀形式会使用变量原来的值。
- 切记不可以以纯数字来使用,比如6++就是错的

6.关系运算符与逻辑boolean运算符
| 符号 | 描述 |
|---|---|
| == | 检查如果两个操作数的值是否相等,如果相等则条件为真。 |
| != | 检查如果两个操作数的值是否相等,如果值不相等则条件为真。 |
| < | 检查左操作数的值是否小于右操作数的值,如果是那么条件为真。 |
| > | 检查左操作数的值是否大于右操作数的值,如果是那么条件为真。 |
| >= | 检查左操作数的值是否大于或等于右操作数的值,如果是那么条件为真。 |
| <= | 检查左操作数的值是否小于或等于右操作数的值,如果是那么条件为真。 |
| && | 称为逻辑与运算符。当且仅当两个操作数都为真,条件才为真。 |
| || | 称为逻辑或操作符。如果任何两个操作数任何一个为真,条件为真。 |
| ! | 称为逻辑非运算符。用来反转操作数的逻辑状态。如果条件为true,则逻辑非运算符将得到false。 |
| ex1?:ex2:ex3 | 如果ex1为true,则取ex2的值,否则取ex3的值 |



7.位运算符
-
Java定义了位运算符,应用于整数类型(int),长整型(long),短整型(short),字符型(char),和字节型(byte)等类型。
-
位运算符作用在所有的位上,并且按位运算。
-
假设a = 60,b = 13;它们的二进制格式表示将如下:
A = 0011 1100
B = 0000 1101
A&B = 0000 1100
A | B = 0011 1101
A ^ B = 0011 0001
~A= 1100 0011


8.括号与运算符级别
- 当多个运算符出现在一个表达式中,谁先谁后呢?这就涉及到运算符的优先级别的问题。在一个多运算符的表达式中,运算符优先级不同会导致最后得出的结果差别甚大。
- 下表中具有
最高优先级的运算符在的表的最上面,最低优先级的在表的底部。


本文来自互联网用户投稿,文章观点仅代表作者本人,不代表本站立场,不承担相关法律责任。如若转载,请注明出处。 如若内容造成侵权/违法违规/事实不符,请点击【内容举报】进行投诉反馈!
