栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Java

Java100天编程指南---第5天: 运算符与表达式(下)

Java 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

Java100天编程指南---第5天: 运算符与表达式(下)


目录

一、前言

二、逻辑运算符

1.与

2.或

3.非

三、三元运算符

四、基本位运算

1.与

2.或

3.非

4.同或

5.异或

五、移位运算

1.左移

2.右移

六、优先级


一、前言
  • 学习目标 1:熟悉基本的逻辑运算符、三元运算符计算
  • 学习目标 2:对于位运算与、或、非、同或、异或、移位运算会熟练应用,位运算在很多面试题会出现,最后优先级的表格要了解一下

二、逻辑运算符
  • 定义:用于对逻辑数据进行运算,即与、或、非。

1.与
public static void main(String[] args)
	{
		int i,j,k;//与运算
		i=10;
		j=20;
		k=30;
		//有false则false
		System.out.println((i>j)&&(i>k));//false&&false   false
		System.out.println((i>j)&&(ik));//true&&false    false
		System.out.println((i 
  • 假如前一个为false,后一个不执行,直接输出false 

2.或
	public static void main(String[] args)
	{
		int i,j,k;//或运算
		i=10;
		j=20;
		k=30;
		//有true则true
		System.out.println((i>j)||(i>k));//false||false   false
		System.out.println((i>j)||(ik));//true||false    true
		System.out.println((i 
  •  假如前一个为true,后一个不执行,直接输出true 

3.非
public static void main(String[] args)
	{
		int i,j,k;//非运算
		i=10;
		j=20;
		k=30;
		System.out.println((i>j));//false
		System.out.println(!(i>j));//true
		System.out.println(!!(i>j));//false
	}

总结:

符号介绍说明
&&true&&true=true
||true||false=true
!取反操作,!false=true   !true=false

三、三元运算符
  • 格式:条件表达式 ? 值1 : 值2
  • 执行流程:首先计算表达式的值 ,如果值为 true,返回 值1,如果为 false,返回 值2

例题 :

  • 给定a,b的值,求出当中的最大值,赋给max
public static void main(String[] args)
	{
		int a,b,max;//初始化数据变量
		a=20;//赋值
		b=10;//赋值
		max=a>b?a:b;//max等于a b两者中间较大的一个
		System.out.println(max);//输出结果
	}
//输出20

四、基本位运算 1.与
  • 符号:&
  • 运算规则:两个二进制位都为1时才为1,否则为0
  • 示例:1001&1111=1001
2.或
  • 符号:|
  • 运算规则:两个二进制位都为0时才为0,否则为1
  • 示例:1001&1100=1101
3.非
  • 符号:~
  • 运算规则:首位符号位不变,0变成1,1变成0,在最后一位+1
  • 示例:~1001 = 0110

4.同或
  • 符号:~
  • 运算规则:数字相同时为1,相反为0
  • 示例:1001~1100=1010

5.异或
  • 符号:^
  • 运算规则:两个二进制位相反为1,相同为0
  • 示例:1001^0111=1110

五、移位运算

1.左移
  • 符号:<<
  • 运算规则:符号位不变,低位补0

示例:

a< 正数,即 10*2=20

计算 10 << 2
10的补码:0000 1010
-----------------------
结果补码:0010 1000 ==> 正数,即 10*2^2=40

计算 10 << 3
10的补码:0000 1010
-----------------------
结果补码:0101 0000 ==> 正数,即 10*2^3=80

计算 12 << 1
12的补码:0000 1100
-----------------------
结果补码:0001 1000 ==> 正数,即 12*2=24

2.右移
  • 符号:>>
  • 运算规则:低位溢出,符号位不变,并用符号位补溢出的高位

示例:

a>>b 代表十进制数字a向右移动b个进位

计算 80 >> 1
80的补码:0101 0000
-----------------------
结果补码:0010 1000 ==> 正数,即 80/2=40

计算 80 >> 2
80的补码:0101 0000
-----------------------
结果补码:0001 01000 ==> 正数,即 80/2^2=20

计算 80 >> 3
80的补码:0101 0000
-----------------------
结果补码:0000 1010 ==> 正数,即 80/2^3=10

计算 24 >> 1
12的补码:0001 1000
-----------------------
结果补码:0000 1100 ==> 正数,即 24/2=12

六、优先级
运算符描述优先级
[]、()数组、括号1
++ -- ! ~自增、自减2
* / %乘除、取余3
+ -加、减4
<< 、 >>  、>>>移位运算5
<  、<=、  > 、>=关系运算6
==、 !=关系运算7
&位与8
^异或9
|位或10
&&逻辑与11
||逻辑或12
?:三元运算符13
= 、*=、 /=、 +=、 -=、 ^=赋值运算14
&=、 |=、 <<=、 >>= 、>>>=赋值运算15

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/820508.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号