Java语言基础(运算符)

运算符

算术运算符:

+ - * /
会出现不精确的报错情况

%(取余, 模运算)
5/2 五除以二余1 (5%2)运算结果为1
任何数模于2 结果不是0就是1 可以利用该特点来进行开关算法的定义 开关开关开关010101

+(连接符)
什么时候体现 什么时候是连接符:
3+2 三加二
3+“2” 三加字符串二
任何数据和字符串+都是相连接 所以3+“2”的结果为“32”(字符串32)
例如:
(“5+5=”+5+5);
运算结果为 5+5=55
(“ab”+5+5);
结果 ab55
意思为ab和5相连接在和5相连接

int  a=4, b=5;
System.out.println(a+","+b);"a="+a+","+"b="+b);
结果  4,5                                              a=4,b=5

// ++ 自增:就是在原有数据基础上+1,在赋给原有的数据

int a=3;
a++; //a= a+1; //(也就是对 a=a+1 运行) 也可以是++a
System.out.println(“a=”+a); //字符串会直接输出(双引号里面的东西会直接输出 “a=”会直接输出为a= 后面加连接符加其它数据)
运算结果 a=4
++运算符的讲解

int  a=3,b;
b=a++;  
System.out.println("a="+a+"b="+b);   
a=3b=4                          

i=3;
i=i++;                              i=i++;
结果  i=3                          temp(临时)=i;
		        i=i+1;
	 	        i=temp;

赋值运算符:   =             特殊表现形式:   +=    -=   *=   /=     %=
	int  a=4;	
	a=b=c=d=4;      (连续赋值)
	a+=2;                 //a=a+2;


	short    s=3;
	s+=4;       (做了强制类型转换)
	s=s+4;     (没有做强制类型转换)

比较运算符&逻辑运算符

class OperateDemo3
{
	public static void main(String[] args)
	{
		System.out.println(3>2);   //true;
	}
}

注:

  • 比较运算符的结果都是boolean型,也就是要么是true,要么是false。
  • 比较运算符 “==”不能误写成“=”。

比较运算符

逻辑运算符

2<x<5必须拆分开为 x>2 x<5

逻辑运算符的作用:
用于连接两个boolean类型的表达式。
&:与 |:或

System.out.println(x<5&x>2);
“&”符号的运算特点:
true& true=true
true&false=false
false&true=false
false&false=false
&的运算规律 :&运算的两边只要有一个false,那最终结果一定是false
只有两边都是true的时候最终结果才是true。

System.out.println(x<2|x>5);
"|"运算符的运算特点:
true|true =true;
true|false= true;
false|true=true;
false|false= false;
“|”的运算规律:| 运算的两边只要有一个是true,那结果一定是true,只有两边都是false的时候最终结果才是false。
“^” 异或:和或有点不一样。
true^true =false;
true^false= true;
false^true=true;
false^false= false;
"^"的运算规律:^的两边如果相同,结果就是false;只有两边结果不同,则结果是true。
“!” 非运算:判断事物的另一面。
!teue=false;
!false=true;
&&与与:和单&的区别,只要左边为false那么右边直接不运算,则结果为false。
和单&的相同处,最终的运算结果是相同的。
(运算过程有区别)单&无论左边运算结果是什么,右边都参与运算。
||或或:和单|的区别,只要左边为true,那么右边直接不运算,则结果为true。
和单|的相同处,最终的运算结果是相同的。
(运算过程有区别)单|无论左边运算结果是什么,右边都参与运算。

位运算符

位运算符

· << 相当于乘以2的倍数
· >> 相当于除以2的倍数 移n位,是对乘以或者除以2的n次幂。

一个数异或同一个数两次,结果还是这个数。 6^3=5 6^3^3=6

反码:
原码 反码 补码。
(原码变反码:0变1,1变0。 在+1就是补码)

·· << 左移

System.out.println(3<<2);//3左移两位,左移几位就是该数据乘以二的几次方,可以完成2的次幂运算

·· >> 右移
右移几位就是该数据除以2的几次幂
对于高位出现的空位,原来的高位是什么就用什么补这个空位

·· >>> 无符号右移:数据进行右移时高位出现的空位无论原高位是什么空位都用0补。 正数负数都用0补。

位运算符的细节

练习:

1.最有效率的的算出2乘以8等于几
2<<3

System.out.println(2*8);
System.out.println(2<<3)
  1. 对两个整数变量的值进行互换(不需要第三方变量)
     int a=3,b=5;
     a=a+b;//a=3+5;a=8;
     b=a-b;//3+5-b;b=3
     a=a-a; //3+5-a=5;
    System.out.println("a="+a+",b="+b);
    

但是这种方式的缺陷在于,如果两个整数的数值过大,会超出int范围,会强制转换。数据会变化。所以用位运算。

a=a^b;a=3^5;
b=a^b;b=(3^5)^5;b=3;
a=a^b;a=(3^5)^3;a=5;
int c; //开发时一般用这种
c=a;
a=b;
b=c;

三元运算符

三元运算符

(条件表达式)?表达式1:表达式2;
如 : z=(x>y)?x:y;

//获取两个整数中的较大的整数。
int a.b;
int max =a>b?a:b;
//获取三个整数中较大的整数。
int a,b,c;
int temp = a>b?a:b;
int max2 =temp>b?temp:c;

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值