运算符(二)

1. 运算符
1.1 赋值运算

=  +=  -=  *=  /=  %=

byte x=1;

x+=2;

x==3;

如果

byte x=1;

x=x+2;

无法成功运行;

这是因为整型1在栈内存的常量池中以二进制形式存储,0 0000001;

2以默认的int类型在常量池中也以二进制形式存储,00000000 00000000 00000000 00000010;

在执行x+=2时,加法运算符会将二进制形式存储的1自动补齐,

0000000 00000000 00000000 00000001 + 00000000 00000000 00000000 00000010

==00000000 00000000 00000000 00000011;

赋值运算符会自动进行取舍,即  00000011(因为前面都是 0);

而 x=x+2,右边的 x+2 加法运算符无法准确地判断,32bit无法存储在8bit的byte类型中;

1.2 位运算

位运算的操作对象是二进制;包含  | 按位或  & (按位与)、^ (按位异)、 ~ ( 按位取反)这几个运算,

在讲之前,先了解一下十进制,二进制:

十进制:逢十进一,例如我们现在的数学采用的就是十进制;

二进制:逢二进一,由0和1组成(后面是有效位);

十进制转换成二进制:除二取余,倒序排列;

二进制转十进制: 从右到左计算,每个数乘2的位置次幂(从0开始算),结果累加;

讲完了二进制,十进制,再补充

八进制,十六进制;

二进制:01,                                 不超过2;

十进制:0123456789,                 不超过10;

八进制:01234567,                     不超过8;

十六进制:0123456789ABCDE, 不超过16;

位运算规则

1.十进制转换为二进制;

2,竖着按照对应位置进行位运算(true——1,false——0)

3.二进制转换为十进制

如 3 & 5

第一步:3的二进制  00000011

              5的二进制  00000101

第二步:按位符&:   00000001

第三步:十进制:   1

即 3 &  5=1;                 

 (4)原码,反码,补码

正数的原码,反码,补码均相同:

负数的原码,反码,补码相比较麻烦;

举例: 6                                                                                                   -6

原码:00000000 00000000 00000000 00000110     10000000 00000000 00000000 00000110     反码:00000000 00000000 00000000 00000110     11111111 11111111 11111111 11111001          补码:00000000 00000000 00000000 00000110     11111111 11111111 11111111 11111010   

负数的反码是除符号位外,全部取反,补码则是反码加一;

计算机是以补码的形式存储数字的(与二进制存储不矛盾) ,不管正.负;

反码是一种形式,取反是一个过程;

(5)6<<1

第一步:十进制        00000000 00000000 00000000 00000110

第二步:移动:        00000000 00000000 00000000 00000110

第三步: 000000000 00000000 00000000 00001100(左边第一个“挤”掉了,最右边空的用0补上)

 000000000 00000000 00000000 00001100的十进制是:12

即 6<<1=12,相当于6*2的位移次幂;

1.3 逻辑运算

boolean:true  false

java不同于C/C++,判断对错只能用 true或者false;

如 3>2,结果为 true;

非与或(!        &        |)        &&(短路与)     ||(短路或)        ^(异或)

逻辑与(&)VS  短路与(&&)

只有当 短路与 中第一个判断条件为  false    的时候才会发生短路,即后面的条件不判断了,此时性能比  逻辑与  好一些,如果不发生短路,两者没有区别;

短路或(||) 与 逻辑或(|) 在结果上没有区别;

1.4 关系运算符

==        !=        >        <        >=        <=

区分”==“与”=“运算符:

”==“类似于数学中的”=“号;

”=“是赋值运算符,给变量赋值的;

善于总结,将知识点转化为自己的语言进行输出,效果才会更好;

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值