本帖最后由 武汉分校-小舞 于 2016-3-23 10:25 编辑
【武汉校区】独家分享:Java的运算符
概述:对常量和变量进行操作的符号称为运算符
Java的运算符分类
算术运算符算术运算符包括+,-,*,/,%等基本的算术运算 + 加法运算 例如:3+4结果是7 - 减法运算 例如:3-4结果是-1 * 乘法运算 例如:3*4结果是12 / 除法运算 注意:整数相除只能得到整数 例如:3/2=1; % 取模(余数)运算 例如:5%2结果是1 ++ 自增运算 单独使用: 例如:ina=0; a++和++a的结果都是一样,结果都会自增1 参与运算: 例如:inta=0; Int c=a++;// 先把a赋值给c,然后a自增1 Int c=++a;// 先让a自增1,然后把a赋值给c -- 自减运算 单独使用: 例如:ina=0; a--和--a的结果都是一样,结果都会自减1 参与运算: 例如:inta=0; Int c=a--;// 先把a赋值给c,然后a自减1 Int c=--a;// 先让a自减1,然后把a赋值给c
赋值运算符基本的赋值运算 “=” 例如:int a=10;//将数据10 赋值 给整数类型的变量a 扩展的赋值元算符 “+=”,“-=”,“*=”,“/=”,“%=” 运算规律: a+=b;//将”=”左边和右边的运算结果赋值给左边(其他几个同理) 例如:inta=2; a+=2结果是4 a*=2结果是4 a/=2 结果是1 a%=2 结果是0
注意:a+=b不是等价于a=a+b;而是等价于a=(a的数据类型)(a+b) 例如: Shorta=3;a=a+4;//编译报错, 因为3是int类型,a是short类型,运算结果应该也是int类型,用short类型接受有精度损失 Short a=3;a+=4;//正常编译和运算,a的结果是7 因为a+=4;等价于a=(short)(a+4);结果为a等于7
比较运算符“>”,“>=”,“<”,“<=”,“==”,“!=” 比较运算符的运算结果都是boolean类型 例如:int a=3;int b=4; a>b false a>=b false a<b true a<=b true a==b false a!=b true 注意:>=( <=) 表示大于(小于)或者等于 “==” 表示比较两个数是否相等
逻辑元算符逻辑运算符是对 boolean类型的数据进行运算 “&”,“|”,“^”,“!”,“&&”,“||” &(与运算):两边都是true结果才是true,否则结果为false |(或运算): 两边都是false结果才是false,否则结果为true ^(异或运算): 两边相同为false,不同为true !(非运算):false变为true,true变为false &&(双与运算) 左边如果结果为false,右边不参与运算 ||(双或运算) 左边如果结果为ture,右边不参与运算
位运算符位运算是对二进制数据进行操作的 注意: 计算机在做数据运算的时候都是通过补码进行运算的 &位与运算 将二进制数据逐一进行&与运算,1^1结果才是1,否则结果是0 例如:3&4 3 00000011 & 4 00000100
00000000 结果为0 |位或运算 将二进制数据逐一进行|与运算,0^0结果才是0,否则结果是1 例如:3|4 3 00000011 | 4 00000100
00000111 结果为7 ^位异或 相同则为0,不同则为1 例如:3^4 3 00000011 ^ 4 00000100
00000111 结果为7 <<左移 将二进制数据从最高向左移动需要的位数,空位补0 例如:2<<2 二进制 十进制 0000000000000000 00000000 00000010 2 <<2 (00)00000000000000 00000000 0000001000 8 括号里的内容是移除的位数
>>右移 将二进制数据从最低向右做移动需要的位数 最高位是0,空位补0 最高位是1,空补1 例如1:24>>2 0000000000000000 00000000 00011000 24 右移动2位空位补0 >>2 0000000000 00000000 00000000 000110(00) 6 例如2:-24>>2 -24的源码 10000000 00000000 00000000 00011000 源码 11111111 11111111 11111111 11100111 反码 11111111 11111111 11111111 11101000 补码 用补码计算 11111111 11111111 11111111 11101000 右移动2位空位补1 >>2 111111111111111111 11111111 111010(00) 补码 111111111 11111111 11111111 111001 反码 1000000000 00000000 00000000 000110 源码 结果为-6 >>>无符号右移 将二进制数据从最低向右做移动需要的位数 无论最高位是0还是1,空都补0 -24>>>2 -24的源码 10000000 00000000 00000000 00011000 源码 11111111 11111111 11111111 11100111 反码 11111111 11111111 11111111 11101000 补码 用补码计算 11111111 11111111 11111111 11101000 0011111111 11111111 11111111 111010(00) 补码 结果为:1073741818
三目运算符格式: 关系表达式?表达式1:表达式2 执行流程 首先判断关系表达式的结果是true还是false 如果是true,就执行表达式1 如果false,就执行表达式2 例如: Int a=3;intb=4; 求a,b中较大的值 Intmax=a>b?a:b;//max的结果为4 想获取最新传智播客武汉中心分享技术文章请加QQ 1641907557 ,后期会分享更多与实体班同步教程,助你冲击月薪20K!
推荐阅读:
|