运算符+进制

进制

二进制 0. 1 满2进1 以0b或0B开头
一个字节 8 位
14

符号位6543210
0为+/1为-0001110

首位符号位 0表示正数 1* 23+1* 22+1* 21+0* 20 =8+4+2=14
正数三码一样 源码,反码,补码


将14的二进制0000 1110最高位改为1–>得到1000 1110此为-14源码
首位符号位 1表示负数
-14 此为-14的源码(首位是符号位)

10001110

-14反码为–除符号位外,其余各个位取反: 如下

11110001

-14补码为 : 反码+1: 如下

11110010

计算机底层,以补码方式存数据,(就是我们正常学的进制形式,通常不明确指出,就默认是补码)正负都是补码
如-14,存储为补码1111 0010

byte类型1字节8位 -128~~127 128超出byte范围
int 4字节32位 128表示为0000 0000 0000 0000 0000 0000 1000 0000
当int128强转为byte,只取最后8位 int 128最后8位是1000 0000
转为byte 1000 0000 第一位 1变为符号位

10000000

而1000 0000是对应的是-128
1000 0001是-127 -127-1 = -128 1000 0001 -1 -->1000 0000


十进制 0-9 满10进1
转2进制
13/2 = 6…1
6/2 = 3…0
3/2 = 1…1
1/2 = 0…1
0 / 2 = 0…0
倒着写 1101


八进制 0-7 满8进1, 以数字0开头
十六进制 0-9和A-F,满16进1 , 以0x或0X开头表示,此处A-F不区分大小写10-A 11-B…15-F
如 0x21AF+1 = 0X21B0
互相之间的转化,通过二进制搭桥

八进制–8 = 23 将二进制数3个分一组计算

000000000000011101001
0开头-----------------------------------011=3101=5001=1

结果0351

二进制—>十六进制
16 = 24 四个数分一组计算

00000000000000011101001
0x开头- ---- ------------ -1110=E1001=9

结果为0XE9

运算符

算术运算符:+, -,*,/, %,++, --(自增自减,++a —>先自增,在赋值 a++ ---->先赋值在自增)

赋值运算符=
关系运算符:>,<,>=,<=,==,!= instanceof
逻辑运算符:&&,||,!
位运算符:&, |,^,~, >>, <<, >>>(了解! ! ! )
条件运算符 ? :
扩展赋值运算符: +=, - =, *=, /=

自增 自减

a++ —>后加加 先计算,最后自增

++a —>前加加 先自增,再计算
–a同理

a = 2 :b = ++a   // a = 3  , b = 3
a = 2 :b = a++; // a = 3 , b = 2
a = 2 :b = --a; //a = 1 , b = 1
a = 2 :b = a--:  //a = 1 , b = 2
// 注意,自增自减不会改变变量数据类型
short s=10;
s++: //s++ = 10 ,结果为short类型  若为s1 = s+1,则为int

//  %取模运算(取余数) 取模结果为零,表示能除尽
int m = 12:
int n = 5:
int y = m % n://y=2 -12$5=-2 /12%5=12/-12%-5=-2  12%5=2
//取模运算的结果,正负号跟被模数的符号一致

幂运算 (Math类)

3² Math.pow(3,2)

逻辑运算符(只能操作boolean类型变量)

短路与 A && B短路或 A || B逻辑非 !
和(and)或(or)取反 真取假,假取真
只要有一个是false,结果为false只要有一个是true,结果为truea^b
优点: A(若为false)决定结果,将跳出,不计算B ,减少运算优点: A(若为true)决定结果,将跳出,不计算B,减少运算亦或(a和b相反(一真一假)为真)

位运算(运算速度最快)

A0 0 1 11 1 0 0
B0 0 0 01 1 0 1
A & B0 0 0 01 1 0 0
A | B0 0 1 11 1 0 1
A ^ B0 0 1 10 0 0 1异或
~B1 1 1 10 0 1 0取反

左移 << —> *2

右移>> —> /2

拓展运算符

+= a+=b --> 结果同 a=a+b

-= a-=b --> 结果同 a=a-b

short s1 = 10;
s1 += 2;//自身加,不会改变数据类型 

三元运算符

​ x ? y : z --> x 成立,输出 y ,否则 输出 z

注意

加号

加号 + 运算过程中,遇到字符串 , 字符串之前的数字 仍为加法运算,从 字符串 之后 的 加号 + 变为字符串连接符,

优先级

优先用小括号 () 来组织 ,不易出错.清晰明了

逻辑非 > 与 > 或 ! > & > |

a || b && c ==> a || (b && c)

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值