随堂笔记160228表达式

本节课的内容主要是对上一节的表达式内容做补充




表达式:

1.异或(^):两个数异或运算,相同位得0,不同位为1

  ex:  110(6)

111(7)
--------
001(1)

 

异或可以用于两个数的交换,举个例子:

int a = 10,b = 20;

现在如何不使用第三个变量来交换他们两个的值呢?

第一步,首先将两个数进行异或运算并赋值给a

a(10) 00001010

b(20)       ^00010100

--------------------------

00011110

a = a ^ b;


第二步,将得到的答案与b异或运算,就得到b

b(20) 00010100

a       ^00011110

------------------------

00001010(得到10)

b = b ^ a;

第三步,将b与a异或

b(10) 00001010

a       ^00011110

--------------------------

00010100(得到20)

a = a ^ b;


2.负数在计算机内以补码的形式存放。

1.补码:源码取反+1。
ex:-3的补码(由2的源码取反得到)
00000010(2)
-----------
11111101(-3的补码)

现在根据补码来源可以得到源码=补码-1取反;

11111101(-3补码)
  - 0000001
  -----------------
 ~ 11111100(取反,最高位符号位不参与运算)
 -----------------
10000011(-3的源码)

3.位移运算(<< >>):

ex:
int a = 1,c;
c = a >> 1;
System.out.println(c); //输出c为0;
 

4.表达式中的优先级用括号来体现。


5.三目运算符:条件?真:假;

ex: int score = 60;
score < 60 ? "不及格":"及格";

6.关于表达式中的边界值:边界值设定错误造成BUG。

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值