`
txf2004
  • 浏览: 6871742 次
  • 性别: Icon_minigender_1
  • 来自: 上海
社区版块
存档分类
最新评论

java 运算符

 
阅读更多

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

操作符:参加运算符的数据成为运算对象(操作数)。

分类:

1. 按运算符的功能,将运算符分为:算术运算符.关系运算符.逻辑运算符.位运算符.赋值运算符等。

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

表达式:若干操作数和运算符按约定规则构成的一个序列

算术运算符

1.+:连接两个字符,eg abc+12的结果为“abc12”;

Java语言既可以对整数取模,也可以对小数取模。Eg16.2%5=1.2

Char类型的数据类型可以进行算术运算,而boolean类型的数据不能进行算术计算

++--)运算符的操作数必须是变量,不能是常量或表达式。++i或者i++(注意两者的去区别)

Eg 自增自减运算符的使用

public class Testlncrement{

public static void main(String[]args){

int i=9;

intj;

j=++I;

System.out.primt(“i=”+i+”\tj=”+j);

J=i++;

System.out.primt(“i=”+i+”\tj=”+j);

}

}

¯ 关系运算符

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

Public class TestComparison{

Public static void main(String[]args){

int a = 4;

int b = 6;

if(a!=b)

yetem.out,println(“a 等于b)

if(a==b)

yetem.out,println(“a 不等于b)

if(a>b)

yetem.out,println(“a 大于b)

if(a<b)

yetem.out,println(“a 小于b)

if(a>=b)

yetem.out,println(“a 等于大于b)

if(a<=b)

Syetem.out.println(“a 小于等于b”)

}

}

¯ 逻辑运算符

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

注意:运算符(&|)和运算符(&&||)的区别

¯ 位运算符

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

µ ~(按位取反)
格式:~a
功能:将操作数a中的二进制位由10,由01
例如:int x=2; x=?

µ &(按位相与)
格式:a & b
功能:两个操作数的相应位都为1,则该位为1,否则为0。例如, int x=2,y=7; x & y = ?

µ |(按位相或)
格式:a | b
功能:两个操作数的相应位中有一个为1,则该位的结果为1。例如,int x=5,y=8; x | y = ?

µ ^(按位相异或)
格式:a ^ b
功能:两个操作数的相应位相异,则该位的结果为1,否则为0。例如,int x=5,y=8; x ^ y = ?

µ 注意:移位运算时真正的移位位数不一定是指定的b位。当aint型(或byteshortchar型)时,系统会先将b32取模,得到的结果才是真正移位的位数,而当along型时,系统先将b64取模,得到的结果作为真正的移位位数。

µ 分析:方法getOneBit()可以返回参数num的第n-1位。

µ public int getOneBit(int numint n){

µ int i=1 << (n-1);

µ int nb = num & i;

µ return nb >> (n-1);

µ }

µ 赋值运算符

µ 格式:变量=表达式
double d = 7.8f; //合法
int a = 78L; //非法
int a = (int)78L; //合法

µ 复合的赋值运算符
+= -= *= /= %= &= |= ^= >>= <<= >>>=

µ 条件运算符

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

¯ 表达式中的数据类型转换

µ 自动类型转换

当不同类型的常量和变量在表达式中混合使用时,它们最终将被转换为同一类型,然后进行运算。为了保证精度,转换从表示数的范围较小的数据类型到表示数的范围较大的数据类型。

ü (byteshort)intàint

ü (byteshortint)longàlong

ü (byteshortintlong)floatàfloat

ü (byteshortintlongfloat)doubleàdouble

ü charintàint

µ 强制类型转换

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

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

3.832位整数65366强制转换为byte型后,整数的高位被截掉,只剩下低8位,字节数据为86,导致数据丢失。

3.9 数值的类型转换。

分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics