ICode9

精准搜索请尝试: 精确搜索
首页 > 编程语言> 文章详细

从0开始学Java-5 运算符

2022-06-26 21:34:07  阅读:181  来源: 互联网

标签:Java 运算 开始 运算符 按位 false true 表达式


5.1 赋值运算符

  赋值运算符以符号 “=” 表示,它是一个二元运算符,其功能是将右方操作数所含的植赋给左方的操作数:

  int a = 100;

  该表达式是将 100 赋给变量 a。左方的操作数必须是一个变量,而右方的操作数则可以是任何表达式,包括变量、常量、有效表达式(1*2)。

  由于赋值运算符 “=” 处理时会先取得右方表达式处理后的结果,因此一个表达式中若含有两个以上的 “=” 运算符,会从最右方 “=” 开始处理。

 

 

 

5.2 算数运算符

  Java 中的算术运算符主要有+(加)、-(减)、*(乘)、/(除)、%(求余),它们都是二元运算符。

运算符

说明

实例

结果

+ 12.45f + 15 27.45
- 减  4.56 - 0.16 4.4
* 5L * 12.45f 62.25
/ 7 / 2 3
% 取余数 12 % 10 2

 

 

 

 

 

 

 

  其中,“+” 和 “-” 运算符还可以作为数值的正负符号,如+5、-7。

5.3 自增和自减运算符

  自增、自减运算符是单目预算符,可以放在操作元之前,也可以放在操作元之后。操作元必须是一个整型或浮点型变量。自增、自减运算符的作用是使变量的值增 1 或减 1。放在操作元前面的自增、自减运算符,会先将变量的值加 1(减 1),然后再使该变量参与表达式的运算。放在操作元后面的自增、自减运算符,会先使变量参与表达式的运算,然后再将该变量加 1(减 1):

  ++a(--a)//表示在使用变量a之前,先使 a 的值加(减)1

  a++(a--)//表示在使用变量a之后,使 a 的值加(减)1

  粗略的分析,“++a” 与 “a++” 的作用都相当于 a = a + 1。假设 a = 4,则:

  b = ++a;  //先将 a 的值加1,然后赋给 b,此时 a 值 为 5,b 值为 5;

  再看另一种语法,同样假设 a = 4,则:

  b = a++  //先将 a 的值赋给 b,再将 a 的值变为 5,此时 a 值为 5,b 值为 4。

5.4 比较运算符

  比较运算符属于二元运算符,用于程序中的变量之间、变量和自变量之间以及其他类型的信息之间的比较。比较运算符的运算结果是boolean类型。

运算符 作用 举例 操作数据 结果
> 比较左方是否大于右方 'a' > 'b' 整型、浮点型、字符型 false
< 比较左方是否小于右方 156 < 456 整型、浮点型、字符型 true
== 比较左方是否等于右方 'c' == 'c' 基本数据类型、引用型 true
>= 比较左方是否大于等于右方 479 >= 426 整型、浮点型、字符型 true
<= 比较左方是否小于等于右方 12.45 <= 45.5 整型、浮点型、字符型 true
!= 比较左方是否不等于于右方 'y' != 't' 基本数据类型、引用型 true

 

 

 

 

 

 

 

 

5.5 逻辑运算符

  返回类型为布尔型的表达式,如比较运算符,可以被组合在一起构成一个更复杂的表达式。逻辑运算符包括&(&&)(逻辑与)、||(逻辑或)、!(逻辑非)。逻辑运算符的操作元必须是boolean型数据。在逻辑运算符中,除了 “!” 是一元运算符,其他都是二元运算符。

运算符 含义 用法 结合方向
&&、& 逻辑与 op1 && op2 从左到右
|| 逻辑非 op1 || op2 从左到右
! 逻辑非 !op 从右到左

 

 

 

 

  使用逻辑运算符进行逻辑运算:

表达式1 表达式2 表达式1 && 表达式2 表达式1 || 表达式2 !表达式1
true true true true false
true false false true false
false false false false true
false true false true true

 

 

 

 

 

  逻辑运算符 “&&” 与 “&” 都表示逻辑与,当两个表达式都为 true 时,“逻辑与” 的结果才会是 true。使用逻辑运算符 “&” 会判断两个表达式;而逻辑运算符 “&&” 则是针对 boolean 类型的类进行判断,当第一个表达式为 false 时则不去判断第二个表达式,直接输出结果,从而节省计算机判断的次数。

5.6 位运算符

  位运算符除“按位与”和“按位或”运算符除外,其他只能用于处理整数的操作数,包括byte、short、int和long等数据类型。位运算符是完全针对位方面的操作。整型数据在内存中以二进制的形式表示,如 int 型变量 7 的二进制表示是:

  00000000 000000000 00000000 00000111。

  左边最高位是符号位,最高位是 0 表示正数,若为 1 则表示负数。负数采用补码表示。如 -8 的二进制表示为 :

  11111111 11111111 11111111 11111000

5.6.1 “按位与”运算

  “按位与”运算的运算符为“&”,为双目运算符。“按位与”运算的运算法则是:如果两个整型数据a、b对应位都是1,则结果位才是1,否则为0。如果两个操作数的精度不同,则结果的精度与精度高的操作数相同:

 

5.6.2 “按位或”运算

  “按位或”运算的运算符为“|”,为双目运算符。“按位或”运算的运算法则是:如果两个操作数对应位都是0,则结果位才是0,否则为1。如果两个操作数的精度不同,则结果的精度与精度高的操作数相同:

5.6.3 “按位取反”运算

  “按位取反”运算也称“按位非”运算,运算符为“~”,为单目运算符。“按位取反”就是将操作数二进制中的 1 修改为 0,0 修改为 1:

5.6.4 “按位异或”运算

  “按位异或”运算的运算符是“^”,为双目运算符。“按位异或”运算的运算法则是:当两个操作数的二进制表示相同(同时为0或同时为1)时,结果为0,否则为1。如果两个操作数的精度不同,则结果的精度与精度高的操作数相同:

 

 

 

5.6.5 移位操作

  移位运算符有以下3种:

  <<:左移:将运算符左边的操作数的二进制数据,按照运算符右边操作数指定的位数向左移动,右边移空的部分补0。

  >>:右移:如果最高位是0,右移空的位就填0;如果最高位是1,右移空的位就填1:

  >>>:无符号右移:无论最高位是0还是1,左侧被移空的高位都填入0。

  总之,一个数左移n位,就是将这个数乘以2的n次方;一个数右移n位,就是将这个数除以2的n次方。

 

5.7 三元运算符

  三元运算符的格式为:

  条件式 ? 值1 : 值2

  三元运算符的运算规则为:若条件式的值为true,则整个表达式取值1,否则取值2:

  boolean b = 20 < 45 ? true : false;

 

 

  上述程序表达式“20 < 45”的运算结果返回真,那么boolean型变量 b 取值为 true(值1)。相反,如果表达式的运算结果返回为假,则 boolean 型变量 b 取值为 false(值2)。

5.8 运算符优先级

通常,优先级由高到低的顺序依次是:

增量和减量运算;

算术运算;

比较运算;

逻辑运算;

赋值运算。

如果两个运算有相同的优先级,那么左边的表达式要比右边的表达式先被处理。

优先级

描述 运算符
1 圆括号 ()
2 正负号 +、-
3 一元运算符 ++、--、!
4 乘除 *、/、%
5 加减 +、-
6 移位运算

>>、<<、>>>

7 比较大小 >、<、>=、<=
8 比较是否相等 ==、!=
9 按位与运算 &
10 按位异或运算 ^
11 按位或运算 |
12 逻辑与运算 &&
13 逻辑或运算 ||
14 三元运算符 ?:
15 赋值运算符 =

 

标签:Java,运算,开始,运算符,按位,false,true,表达式
来源: https://www.cnblogs.com/ditiebuhaoxian/p/16414386.html

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有