进制与运算符
进制转换
二进制转换为十进制
整数二进制转换为十进制
## 运算规则是 当前位数上的值 * 2 的位数次幂; 从右到左 从0次幂开始;
0000 0011 -> 十进制 3
0*2^7 + 0*2^6 + 0*2^5 + 0*2^4 + 0*2^3 + 0*2^2 + 1*2^1 + 0*2^0 =3
当前位数上的值 * 2 的位数次幂; 从右到左 从0次幂开始; 任何数的0 次幂 (0除外) 都为1
小数二进制转换为十进制
## 运算规则是 整数部分 从个位开始 ,下标为0,依次向左为+1; 依次向右为-1 -2 ...
0001 0101.01B ----> 转为十进制为 21.25
整数部分 0*2^7 + 0*2^6 + 0*2^5 + 1*2^4 + 0*2^3 + 1*2^2 + 0*2^1 + 1*2^0
小数部分 0*2^-1 + 1*2^-2
结果为 0*2^7 + 0*2^6 + 0*2^5 + 1*2^4 + 0*2^3 + 1*2^2 + 0*2^1 + 1*2^0 + 0*2^-1 + 1*2^-2 = 21.25
十进制转换为二进制
整数十进制转换为二进制
## 转换规则是 十进制的数 除于2 取余数 ,直到商为0 ,余数从下往上依次取值,剩余位补0;
9---> 二进制 1001
十进制 除2 取余数,知道 商为0
9/2 商为4 ...1
4/2 商为2 ...0
2/2 商为1 ...0
1/2 商为0 ...1
然后从下到上 依次连接 余数 就是二进制的数 则为 1001
小数十进制转换为二进制
## 转换规则是 十进制的 小数部分 乘于2 取乘机的整数部分,直到取到符合题意 ; 依次取整数部分
0.15 --->
十进制小数部分 乘于2 取整数部分
小数部分 乘积 整数部分
0.15*2 ---> 0.30 0
0.30*2 ---> 0.60 0
0.60*2 ---> 1.20 1
0.20*2 ---> 0.40 0
0.40*2 ---> 0.80 0
0.80*2 ---> 1.60 1
0.60*2 ---> 1.20 1
.... ... ...
所以 转化为二进制 为 0.00100110011001100110011001100110011001100110011001101
运算符
Java 运算符大致分为
逻辑运算符 (&&,||,!)
算数运算符(+, -, *, / ,+=)
位运算符(^,|,&)
其他运算符(三元运算符)
& (按位与)
## 运算规则: 遇0则0
按位与是将 十进制 --> 转换为二进制 ; 然后对二进制进行按位与预算 ; 运算规则是 遇0 则0
比如:3 & 5 ----> 0011&0101 对应运算规则遇0则0 ---> 0001 --> 转换为十进制为 1
所以: 3 & 5 =1
|(按位或)
## 运算规则: 遇1则1
按位或也是将 十进制的数--> 转化为二进制; 然后对二进制的数进行 按位或运算; 运算规则是 遇1则1;
比如 3|5 ----> 0011|0101 按照对应的规则是 0111 -->转换为十进制为 7
所以 3|5 =7
^(异或运算符)
## 运算规则:相同的为0,不同为1
异或运算符 也是将十进制---> 转换为二进制;然后对二进制进行 异或运算; 运算规则是 相同的为0,不同为1
比如3^5---> 0011^0101 对应的规则 相同为0,不同为 0110 ---> 转换为十进制为 6
所以3^5=6
<<(左移运算符)
## 运算规则: 二进制整体向左移动n位,然后末位补0;
左移运算符 也是将十进制转换为二进制; 然后对二进制 进行 左移; 运算规则是 二进制整体向左移动n位,然后末位补0;
比如 5<<2 --> 转为二进制 0000 0101 按照对应的规则 0001 0100 整体向左移动两位,然后 最后的两位是补充的0 ;转为十进制 20
所以 5<<2 = 20
比如 5<<3 --> 转换为二进制为 0000 0101 按照对应的规则 0000 0101 整体向左移动三位 0010 1000 ; 后三位补充0; 转为十进制为 40
所以 5<<3 = 40
>>(右移运算符)
## 运算规则是 二进制向右移动n位,然后首位补0;
右移运算符 也是将十进制 转换为二进制; 然后对二进制进行右移n 位, 运算规则是 二进制向右移动n位,然后首位补0;
比如5>>2 ---> 转换为二进制为 0000 0101 按照对应的规则 右移两位 0000 01 然后首位补0 --> 00 0000 01 转为十进制为1
所以5>>2 =1
比如5>>3 ---> 转化为二进制 0000 0101 对应的规则 右移3位 00000 --> 首位补0 ----> 00000000 转为十进制0
所以5>>3 = 0
~(取反运算符)
取反运算符 也是将十进制转换为二进制; 然后对二进制进行取反 --> 比如 1 ->0 ; 0->1 运算规则是 遇0取1、遇1取0;
比如 ~5 ---> 转换为二进制 0000 0101 ------> 取反 1111 1010 转换为十进制为