学习笔记三:Java基本语法(三)

真者,精诚之至也,不精不诚,不能动人。——《庄子·渔夫》


本讲内容:Java中的运算符

Java运算符从一个或多个操作数产生新的值。而操作数指的是位于运算符左边或者右边的内容。


一、赋值运算符 Assignment Operators

Java里有12种赋值运算符“=”只是最常见的一种,赋值运算符的优先级是最低的。

11种扩展赋值运算符如下:

运算符用法等效表达式 
+=a+=ba=a+b
-= a-=ba=a-b
*= a*=ba=a*b
/=a/=ba=a/b
%=a%=ba=a%b
&=a&=ba=a&b
|=a|=ba=a|b
^=a^=ba=a^b
>>=a>>=ba=a>>b
<<=a<<=ba=a<<b
>>>=a>>>=ba=a>>>b


二、算术运算符 Arithmetic Operators

1、二元算术运算符

运算符用法描述
+ a+b
-a-b
*a*b
/a/b
%a%b取模(求余)

//判断两个娄是否能整除

<span style="font-size:18px;"><span style="font-size:18px;"><span style="font-size:18px;">int a=2;
int b=4;
if(b%a==0){}</span></span></span>



2、一元算术运算符

运算符用法描述
++a正值
--a负值
++++a,a++加1
----a,a--减1
注意:a++ 先使用后对自身加1, ++a 先对自身加1后使用

<span style="font-size:18px;"><span style="font-size:18px;"><span style="font-size:18px;">public class text {
	public static void main(String[] args) {
		int a=1;
		int b=a++;
		int c=1;
		int d=++c;
		System.out.println(a);
		System.out.println(b);
		System.out.println(c);
		System.out.println(d);
	}
}</span></span></span>
运行的结果是:a=2 ,b=1, c=2,d=2.


三、关系运算符 Relational Operators

关系运算符用于比较两个值,返回一个布尔值true 或 false。关系运算符都是二元运算符

>>=<<===!=
大于大于或等于小于小于或等于等于不等于
当在两个字符类型数据之间比较或者把字符类型数据和整数浮点数类型比较时,Java将字符的Unicode值当做数值与其它数值相比较。

<span style="font-size:18px;"><span style="font-size:18px;"><span style="font-size:18px;">//接收俩个数,并判断大小
import java.io.*;
public class T {
	public static void main(String[] args){
		try {
			//输入流,从键盘接收数      System.in(标准输入)
			InputStreamReader isr=new InputStreamReader(System.in);
			BufferedReader br=new BufferedReader(isr);
			
			//给出提示
			System.out.println("请输入第一个数:");
			//从控制台读取一行数据
			String a1=br.readLine();
			System.out.println("请输入第二个数:");
			String a2=br.readLine();
			
			//String转换成float
			float num1=Float.parseFloat(a1);
			float num2=Float.parseFloat(a2);</span></span>
<span style="font-size:18px;"><span style="font-size:18px;">                        //<span style="font-family: Arial, Helvetica, sans-serif;">String转换成int</span></span></span>
<span style="font-size:18px;"><span style="font-size:18px;"><span style="font-family:Arial, Helvetica, sans-serif;"><span style="white-space:pre">						</span>// int num=Integer.valueOf(a1);
</span>			if(num1>num2){
				System.out.println("第一个大");
			}else if(num1==num2){
				System.out.println("相等");
			}else{
				System.out.println("第二个大");
			}
		} catch (Exception e) {
			e.printStackTrace();
		}
	}
}
</span></span></span>

打印:

<span style="font-size:18px;"><span style="font-size:18px;"><span style="font-size:18px;">请输入第一个数:
23.3
请输入第二个数:
34
第二个大</span></span></span>




四、条件运算符 Conditional Operator
条件运算符根据条件来返回一个值。计算问号左边表达式的值,值为真是提供冒号左边的操作数为返回值,值为假时提供冒号右边的操作数为返回值。这是Java里唯一的一个三元运算符。x?y:z

<span style="font-size:18px;"><span style="font-size:18px;"><span style="font-size:18px;">public class text {
	public static void main(String[] args) {
		int a=3,b=4;
		int c=a>b?a:b;
		System.out.println(c);
	}
}</span></span></span>
运行的结果是:c=4


五、逻辑运算符 Logical Operator
逻辑运算符只对布尔型操作数进行运算并返回一个布尔型数据。一共有6个逻辑运算符:

运算符运算用法描述
&逻辑与a&b两操作数均为true时,结果才为true
|逻辑或a|b两操作数均为false时,结果才为false 
!取反!a与a与原操作数相反同真假时,结果才为false
^异或a^b两操作数相反,结果才为true
&&简捷与a&&b两操作数均为true时,结果才为true
||简捷或a||b两操作数均为false时,结果才为false 
对于简捷与或只要左边表达式为false,就不计算右边表达式


六、位运算符 Bitwise Operators
位运算符是对整数操作数以二进制的每一位(一个字节=8位)进行操作,返回结果也是一个整数。

二进制(原码、反码、补码)

对于有符号的而言

1、二进制的最高位是符号位:0表示正数,1表示负数。

2、正数的原码、反码、补码都一样。

3、负数的反码=它的原码符号位不变,其它位取反。

4、负数的补码=它的反码+1。

5、0的反码、补码都是0。

6、java中的数都是有符号的。

7、在计算机运算的时候,都是以补码的方式来运算的。(运算完要换成原码,正数是本身,负数-1再取反)


运算符用法描述
~a按位取反
&a&b按位与
a|b按位或
a^b按位异或

1、~:对数据的每个二进制位取反,即把1变为0,把0变为1        ~2=-3

2=000000010(00000000000000000000000000000010)取反的为11111101   换成原码为 10000011=-3 


2、&:如果两个相应位都为1,则该位的结果为1,否则为0         2&3=2

2=00000010

3=00000011             

&=00000000010=2


3、|:只要两个相应中有一个为1,则该位的结果为1,        2|3=3

2=00000010

3=00000011   

  =00000011=3


4、^:如果两个相应位不同,则结果为1,否则为0    1^1==0

1=00000001

1=00000001

  =00000000=0


七、移位运算符

运算符用法描述
>>a>>ba右移b位   算术右移
<<a<<ba左移b位   算术左移
>>>a>>>ba无符号右移b位   逻辑右移

算术右移:低位溢出,符号位不变,并用符号位补溢出的高位。右移一位相当于除2取商,而且比除法运算速度要快,1>>2=0

1=000000001   

  =000000000=0


-1>>2=-1

-1=10000001    反码为  11111110    补码为  11111111    右移2位为  11111111 换成原码为 10000001=-1


算术左移:高位溢出,符号位不变,低位补0。左移一位相当于乘2,而且比乘法运算速度要快

1<<2=4

-1<<2=-4


逻辑右移: 低位溢出,高位补0.如:a=00110111 a>>>2=00001101,b=11010011,b>>>2=00110100

3>>>2=0

3=00000011=00000000=0


本讲就到这里,Take your time and enjoy it

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值