第3章 运算符、表达式和流程控制

来源:互联网 发布:网络象棋比赛 编辑:程序博客网 时间:2024/06/01 10:16

3运算符、表达式和流程控制

运算符和表达式

运算符:用于标记对数据执行某种运算的特定符号 。

分类

按运算符的功能,将运算符分为:算术运算符、关系运算符、逻辑运算符、位运算符等

按参与运算的操作数的个数,将运算符分为:单目运算符、双目运算符、三目运算符

关系运算符

      关系运算符用于判断两个操作数的等价性和大小关系,得到的结果为布尔类型,取值为true或false。常用于逻辑判断(if语句或循环)。

逻辑运算符

      逻辑运算符可以对boolean类型数据进行逻辑上的“与”、“或”、“非”、“异或”等运算,结果仍为boolean类型,通常用于程序的流程控制。逻辑运算符  &(&&)、|(||)、!

利用&、|作运算时,运算符左右两边的表达式都会被执行,最后两表达式的结果再进行与、或运算;

而利用&&、||作逻辑运算时,如果只计算运算符左边的表达式即可确定与、或的结果,则右边的表达式
将不会执行。

位运算符

     位运算符用来对整型(byte、short、int、long)或字符型(char)数据二进制位进行操作,结果为一个整数。

~(按位取反)
格式: ~a 
功能:将操作数a中的二进制位由1变0,由0变1。
&(按位相与)
格式:a & b
功能:两个操作数的相应位都为1,则该位为1,否则为0。

|(按位相或)
格式:a | b
功能:两个操作数的相应位中有一个为1,则该位的结果为1

^(按位相异或)

格式:a ^ b
功能:两个操作数的相应位相异,则该位的结果为1,否则为0。

>>(按位右移)
格式:a >> b
功能:将a右移b位,右端的低位被舍弃,左端高位补原来的符号位 。

<<(按位左移)
格式:a << b
功能:将a左移b位,右端的低位补0,左端的高位被舍弃。

>>>(无符号右移)
格式:a >>> b
功能:将a右移b位,右端的低位被舍弃,左端的高位补0。

注意:移位运算时真正的移位位数不一定是指定的b位。当a为int型(或byte、short、char型)时,系统会先将b对32取模,得到的结果才是真正移位的位数,而当a为long型时,系统先将b对64取模,得到的结果作为真正的移位位数。

当赋值运算符两侧的类型不一致时,如果左侧变量的数据类型的表示范围更大,则把右侧的数据自动转换为与左侧相同的数据类型,然后赋给左侧变量,否则,需要使用强制类型转换运算符。

条件运算符  

格式:表达式1表达式2:表达式3
需注意: 表达式1应是boolean类型的表达式;表达式2和表达式3的类型要一致。

强制类型转换

格式:(目标数据类型)变量或表达式
例如,(float)5 / 9 * (f - 32)

注意:强制类型转换时,由于目标数据类型的取值范围小于待转换数据类型的取值范围,在转换过程中会出现截断,导致高位数据丢失或精度下降。

 

二进制代码以最高位是1的为负数,最高位是0的为整数。