关闭

运算符和表达式

198人阅读 评论(0) 收藏 举报

运算符和表达式

1 运算符
         用于标记对数据执行某种运算的特定符号
      分类:
         按运算符的功能,将运算符分为:
         算术运算符、关系运算符、逻辑运算符、位运算符等
         按参与运算的操作数的个数,
         将运算符分为:单目运算符、双目运算符、三目运算符

2 表达式
         若干操作数(operand)和运算符(operator)按照约定规则构成的一个序列 。
3 算术运算符
          加运算符+:连接两个字符串。
          例如,“abc”+12的结果为“abc12”;”abc”+1+2=?  “abc”+(1+2)=?
          Java语言既可对整数取模,也可以对小数取模。例如,16.2%5=1.2
          char类型的数据可以进行算术运算,
          而boolean类型的数据不能进行算术运算。
           ++(--)运算符的操作数必须是变量,不能是常量或表达式 。
           ++i    或者   i++   (注意两者的区别)
4 关系运算符
          关系运算符用于判断两个操作数的等价性和大小关系,
          得到的结果为布尔类型,取值为true或false。
          常用于逻辑判断(if语句或循环)。

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


          ~(按位取反) 格式: ~a  功能:将操作数a中的二进制位由1变0,由0变1。
           例如: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
           功能:将a右移b位,右端的低位被舍弃,左端高位补原来的符号位 。
           例如,byte x=-6;x >>2  = ?


           <<(按位左移) 格式:a << b
          功能:将a左移b位,右端的低位补0,左端的高位被舍弃。
          例如,byte x=-6;x << 2  = ?


          >>>(无符号右移) 格式:a >>> b
          功能:将a右移b位,右端的低位被舍弃,左端的高位补0。
         例如,byte x=-6;x >>> 2  = ?

 

 

 

 

 

 

        ^(按位相异或) 格式:a ^ b 功能:
       两个操作数的相应位相异,则该位的结果为1,否则为0。
       例如,int x=5,y=8;      x ^ y = ?
 
6 赋值运算符
        格式:变量=表达式
        double d = 7.8f;//合法
        int a = 78L;//非法
        int a = (int)78L;//合法

        复合的赋值运算符
         +=  -=  *=  /=  %=    &=   |=  ^=  >>=  <<=  >>>=
 7 条件运算符
         格式:表达式1 ? 表达式2 :表达式3
         需注意:表达式1应是boolean类型的表达式;
         表达式2和表达式3的类型要一致。

8 表达式
         表达式(expression)是由若干操作数(operand)和运算符(operator)
         按照约定规则构成的一个序列。
        
         运算符标明对操作数进行何种操作;
         操作数可以是变量、常量或有返回值的方法调用等其他的表达式。
         (a-b)/c+4  5>=a  a>3 && a<10 10*max(a,b)  a=10  100
9 强制类型转换
          格式:(目标数据类型)变量或表达式
          例如,(float)5 / 9 * (f - 32)

 

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

 

 

 

0
0

猜你在找
【直播】机器学习&数据挖掘7周实训--韦玮
【套餐】系统集成项目管理工程师顺利通关--徐朋
【直播】3小时掌握Docker最佳实战-徐西宁
【套餐】机器学习系列套餐(算法+实战)--唐宇迪
【直播】计算机视觉原理及实战--屈教授
【套餐】微信订阅号+服务号Java版 v2.0--翟东平
【直播】机器学习之矩阵--黄博士
【套餐】微信订阅号+服务号Java版 v2.0--翟东平
【直播】机器学习之凸优化--马博士
【套餐】Javascript 设计模式实战--曾亮
查看评论
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场
    个人资料
    • 访问:334213次
    • 积分:5792
    • 等级:
    • 排名:第4404名
    • 原创:235篇
    • 转载:38篇
    • 译文:10篇
    • 评论:21条
    最新评论