03.Java语言基本语法之运算符,算数、赋值、比较、逻辑、位、三元运算等
来源:互联网 发布:淘宝美工如何做首页 编辑:程序博客网 时间:2024/05/16 14:37
---1.12算术运算符:
+(正号),-(负号),+(加),-(减),*,/,%,++,--,+(连接符)
取模:%取余数,结果的符号和被模数一致。
13%5=3
13%(-5)=3
-13%5=-3
-13%(-5)=-3
------
++前:先自增1,后做运算
后++:先做运算,后自增1
int a=10;
int b=a++;
int c=10;
int d=++c;
---2.3赋值运算符和比较运算符:
①赋值运算符:+=,-=,*=,/=,%=
short s=10;
s+=1;//既可以实现运算,又不会改变s的数据类型;
int i=1;
i*=0.1;//此时i=0;因为数据类型没有变化
②比较运算符:
==,!=,<,>,<=,>=,instanceof(检查是否是类的对象);
------
③逻辑运算符:
&(逻辑与)
|(逻辑或)
!(逻辑非)
&&(短路与)
||(短路或)
^(逻辑异或)a^b,相同为false,不同为true;
&和&&逻辑与和短路与的区别:短路与在左边确定是false的时候,右边的程序不会进行运算;
<<(左移:3<<2=12-->3*2*2=12)
>>(右移:3>>1=1-->3/2=1,正数前面补0,负数前面补1)
>>>(无符号右移:3>>>1=1--->3/2=1,前面都补0)
&(与运算:6&3=2;12&5=4)
|(或运算:6|3=7;12|5=13)
^(异或运算:6^3=5;12^5=9)
2个变量交换数值的方法:
public static void main(String[] args){
int m=12; int n=5;
//方法一:提供一个临时变量:
int temp = m;
m=n;
n=temp;
System.out.println("m:"+m+",n:"+n);
//方法二:当m和n较大时,有可能出现精度损失:
m=m+n;//(m=12+5)
n=m-n;//(n=17-5)
m=m-n;//(m=17-12)
System.out.println("m:"+m+",n:"+n);
//方法三:异或:
m=m^n;
n=m^n;//((m^n)^n=m)
m=m^n;//((m^n)^m=n)
System.out.println("m:"+m+",n:"+n);
}
---2.6三元运算符:
格式:(条件表达式)?true①:false②;(既然是运算符,就一定会有运算结果,要求①②和运算结果是同种数据类型),可以简化if/else语句,但必须有返回值,需要处理很多语句时还是用if语句;
Q:从控制台输出60的十六进制。
int i=60;
//方法1:自动调用Integer类现成的方法:
String binary=Integer.toBinaryString(i);//转化为二进制
String hex=Integer.toHexString(i);//转化为十六进制
//方法2:运用与方法:
int j=i&15;//(15是1111,通过此方法获得i的最低4位对应的值)
String k=(j<=9)?j+"":(char)(j-10+'a')+"";//最低4位对应16进制的值,然后i>>4右移4位,继续上面的与方法;
int j1=(i>>4)&15;
String k1=(j1<=9)?j+"":(char)(j1-10+'a')+"";
System.out.println(k1+k);
+(正号),-(负号),+(加),-(减),*,/,%,++,--,+(连接符)
取模:%取余数,结果的符号和被模数一致。
13%5=3
13%(-5)=3
-13%5=-3
-13%(-5)=-3
------
++前:先自增1,后做运算
后++:先做运算,后自增1
int a=10;
int b=a++;
int c=10;
int d=++c;
---2.3赋值运算符和比较运算符:
①赋值运算符:+=,-=,*=,/=,%=
short s=10;
s+=1;//既可以实现运算,又不会改变s的数据类型;
int i=1;
i*=0.1;//此时i=0;因为数据类型没有变化
②比较运算符:
==,!=,<,>,<=,>=,instanceof(检查是否是类的对象);
------
③逻辑运算符:
&(逻辑与)
|(逻辑或)
!(逻辑非)
&&(短路与)
||(短路或)
^(逻辑异或)a^b,相同为false,不同为true;
&和&&逻辑与和短路与的区别:短路与在左边确定是false的时候,右边的程序不会进行运算;
<<(左移:3<<2=12-->3*2*2=12)
>>(右移:3>>1=1-->3/2=1,正数前面补0,负数前面补1)
>>>(无符号右移:3>>>1=1--->3/2=1,前面都补0)
&(与运算:6&3=2;12&5=4)
|(或运算:6|3=7;12|5=13)
^(异或运算:6^3=5;12^5=9)
~(反码:~6=-7;~12=-13)
位运算与和或:
位运算之异或和取反:
2个变量交换数值的方法:
public static void main(String[] args){
int m=12; int n=5;
//方法一:提供一个临时变量:
int temp = m;
m=n;
n=temp;
System.out.println("m:"+m+",n:"+n);
//方法二:当m和n较大时,有可能出现精度损失:
m=m+n;//(m=12+5)
n=m-n;//(n=17-5)
m=m-n;//(m=17-12)
System.out.println("m:"+m+",n:"+n);
//方法三:异或:
m=m^n;
n=m^n;//((m^n)^n=m)
m=m^n;//((m^n)^m=n)
System.out.println("m:"+m+",n:"+n);
}
---2.6三元运算符:
格式:(条件表达式)?true①:false②;(既然是运算符,就一定会有运算结果,要求①②和运算结果是同种数据类型),可以简化if/else语句,但必须有返回值,需要处理很多语句时还是用if语句;
Q:从控制台输出60的十六进制。
int i=60;
//方法1:自动调用Integer类现成的方法:
String binary=Integer.toBinaryString(i);//转化为二进制
String hex=Integer.toHexString(i);//转化为十六进制
//方法2:运用与方法:
int j=i&15;//(15是1111,通过此方法获得i的最低4位对应的值)
String k=(j<=9)?j+"":(char)(j-10+'a')+"";//最低4位对应16进制的值,然后i>>4右移4位,继续上面的与方法;
int j1=(i>>4)&15;
String k1=(j1<=9)?j+"":(char)(j1-10+'a')+"";
System.out.println(k1+k);
最后是运算符的优先级,建议分开步骤写,下面不重要:
阅读全文
0 0
- 03.Java语言基本语法之运算符,算数、赋值、比较、逻辑、位、三元运算等
- java语言基础(13)——运算符基本用法(算数、赋值、比较、逻辑、位运算符)
- 【JavaScript笔记】1.4 赋值 算数 比较 逻辑 三元 运算符 ++ +=
- Java语言基础{Java_se(02)}-字面量和常量-变量的基本定义和使用-Java表达式-数据类型和分类-基本数据类型的转换-算数运算符-赋值运算符-比较运算符-三元运算符-逻辑运算符
- 算数运算符,赋值运算符,比较运算符,逻辑运算符,三元运算符,位运算符,字符和字符串参加运算
- Python 运算符(算数 比较 赋值 位 逻辑 成员 身份 优先级)
- 黑马程序员-----Java基础知识---常量---进制----变量---运算符(算术--赋值--比较--逻辑--位--三元)----if语句---switch语句
- Java学习基础:运算符和表达式(算数运算、关系运算、逻辑运算、位运算、条件运算、赋值运算)
- JAVA基础——初识JAVA(四)(Scanner、算术、赋值、比较、逻辑、三元运算符)
- 六:Java语言基础组成——运算符之赋值运算符、比较运算符
- Java基础之运算符(算数运算符和赋值运算符)
- 八:Java语言基础组成——运算符之位运算符和三元运算符
- java中的运算符|基础 学习笔记 算术、赋值、比较、逻辑、位
- 【Java】(三)运算符小结(比较、逻辑、三元运算符)
- java学习笔记(算数运算符 赋值运算符 )
- Java语言基础三元运算符的基本用法
- Java运算符之(位运算符、三元运算符)
- Java运算符之比较运算符、逻辑运算符、三元运算符
- 苦啊!!!!
- Service详解
- 如何在SolidWorks中截出高清质量的图片
- 在安装setuptools工具时出现缺少zlib module
- 网卡驱动更新猎奇
- 03.Java语言基本语法之运算符,算数、赋值、比较、逻辑、位、三元运算等
- c++与python 数据类型对应
- javascript-基础2
- 各类软件快捷键
- 面向对象1:类与对象的创建-笔记
- Python--购物车
- JS使用xxx.index=0 和 xxx.setAttribute(‘index’,0) 这两种设置自定义属性的区别?
- dos笔记-如何在bat文件中调用另一个bat文件
- 查找之B树,B+树,B*树及分析MySQL的两种引擎