2运算符笔记

运算符 

算数运算符

+、-、*、/、%、++、--

任意一个四位数,求出每个位上的数字

个位:int num1=num%10

十位: int num2=num/10%10

百位: int num3=num/100%10

千位:int num4=num/1000;

+号:表示相加操作,当+左右两侧的任意一侧有字符串时,进行字符串的拼接

++:自增运算,a++、++a相当于a=a+1

不同点:++a 先进行a+1的操作在进行赋值,

a++,先将a赋值在进行a+1的操作

无论变量是否参加到运算中去,只要有++运算符,这个变量本身都会进行+1

赋值运算符

=、+=、-=、*=、/=

=:赋值运算,将等式右边的值赋值给等式左边

两个数num1和num2进行交换的方式:

1.引入中间变量:

int t;
t=num1;
num1=num2;
num2=t;

2.可以用两个数求和然后相减的方式进行数据交换,弊端在于如果 x 和 y 的数值过大的话,超出 int 的值会损失精度。

int x=5,y=10;
x=x+y;
y=x-y;
x=x-y;

3.利用位运算进行数据的交换,利用的思想原理是:一个数异或同一个数两次,结果还是那个数,

        int x =5,y=10;   
         x = x^y;
         y = x^y;  //y=(x^y)^y
         x = x^y;  //x=(x^y)^x    

4.最为简单的,在打印输出的时候直接交换变量

int x =5,y=10; //定义两个变量
       
System.out.println("x="+y+"y="+x); //直接在输出的时候交换

+=:sum+=num;——>sum=sum+num;

a+=b与a=a+b的区别:

a+=b:可读性较差,编译效率高,底层包含自动类型转换

a=a+b:可读性好,编译效率较低,需要手动类型转换

关系运算符

<, >, >= , <= , == , !=

结果为true或false

逻辑运算符

&,|,&&,||,!,^

&:逻辑与,只要有一个操作数是false,结果为false

&&:短路与,效率高一些,只要第一个表达式为false,则第二个表达式不进行计算,结果直接为false

|:逻辑或,只要有一个表达式为true,则结果为true

||:短路或,效率更高一些,只要第一个表达式为true,则第二个表达式不进行运算,结果直接为true

!:逻辑非,结果相反

^:逻辑异或,两个操作数相同,结果为false,不相同结果为true

位运算符

&,|,^,~,>>,<<,>>>

如何进行区分是逻辑运算符还是位运算符

逻辑运算符左右连接的是布尔类型的操作数

位运算符左右连接具体的数值

条件运算符

?: 三元运算符/三目运算符

a?b:c

a是布尔类型的表达式,返回结果要么是true,要么是false

若a为true则结果为b

若a为false,则结果为c

 

运算符优先级

赋值<三目<逻辑<关系<算数<单目

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值