进制
1. 进制:
1)十进制:
1.1)规则:逢10进1
1.2)数字:0 1 2 3 4 5 6 7 8 9
1.3)基数:10
1.4)权:万 千 百 十 个
2)二进制:
2.1)规则:逢2进1
2.2)数字:0 1
2.3)基数:2
2.4)权:128 64 32 16 8 4 2 1
3)十六进制:
3.1)规则:逢16进1
3.2)数字:0 1 2 3 4 5 6 7 8 9 a b c d e f
3.3)基数:16
3.4)权:65536 4096 256 16 1
二进制转换为十进制的规则(正数):所有为1的权相加
要求:今天必须熟练记住最后4个权(8 4 2 1)
权: 32 16 8 4 2 1
二进制: 1 1 0 1 0 1
十进制: 32+16+4+1----------------53
权: 32 16 8 4 2 1
二进制: 0 0 1 1 0 1
十进制: 8+4+1--------------------13
权: 32 16 8 4 2 1
二进制: 1 0 0 1 1 1
十进制: 32+4+2+1-----------------39
2. 十六进制的权:
16的0次幂---------------1
16的1次幂---------------16
16的2次幂---------------256
16的3次幂---------------4096
16的4次幂---------------65536
二进制的权:
2的0次幂----------------1
2的1次幂----------------2
2的2次幂----------------4
2的3次幂----------------8
2的4次幂----------------16
2的5次幂----------------32
十进制的权:
10的0次幂---------------1
10的1次幂---------------10
10的2次幂---------------100
10的3次幂---------------1000
10的4次幂---------------10000
1. 什么是2进制
逢2进1的计数规则。计算机中的变量/常量都是按照2进制来计算的。
-
2进制:
- 规则:逢2进1
- 数字:0 1
- 基数:2
- 权:128 64 32 16 8 4 2 1
如何将2进制转换为10进制:
- 将一个2进制每个1位置的权相加即可--------正数
```java
权: 32 16 8 4 2 1
二进制: 1 0 1 1 0 1
十进制: 32+8+4+1=45
```
2. 什么是16进制:逢16进1的计数规则
-
16进制:
- 规则:逢16进1
- 数字:0 1 2 3 4 5 6 7 8 9 a b c d e f
- 基数:16
- 权:4096 256 16 1
-
用途:因为2进制书写太麻烦,所以常常用16进制来缩写2进制
-
如何缩写:将2进制从低位开始,每4位2进制缩为1个16进制(每4位1缩)
权: 8 4 2 1 2进制: 0010 1001 0010 1101 1110 1111 0110 1000 16进制: 2 9 2 d e f 6 8----292def68 权: 8 4 2 1 2进制: 0001 1100 1010 0011 1101 16进制: 1 c a 3 d---------1ca3d 权: 8 4 2 1 2进制: 0011 1010 1011 1010 1011 16进制: 3 a b a b--------3abab
3. 补码
-
计算机处理有符号数(正负数)的一种编码方式
-
以4位2进制为例讲解补码的编码规则:
- 计算的时候如果超出4位则高位自动溢出舍弃,保持4位不变
- 将4位2进制数分一半作为负数使用
- 最高位称为符号位,高位为1是负数,高位为0是正数
-
规律数:
- 0111为4位补码的最大值,规律是1个0和3个1,可以推导出:
- 32位补码的最大值:1个0和31个1------(011111111111…)
- 1000为4位补码的最小值,规律是1个1和3个0,可以推导出:
- 32位补码的最小值:1个1和31个0------(100000000000…)
- 1111为4位补码的-1,规律是4个1,可以推导出:
- 32位补码的-1:32个1--------(111111111111…)
- 0111为4位补码的最大值,规律是1个0和3个1,可以推导出:
深入理解负值:
- 记住32位2进制数的-1的编码为:32个1
- 用-1减去0位置对应的权----------负数
```java
1)11111111111111111111111111111111 = -1
2)11111111111111111111111111111101 = -1-2= -3
3)11111111111111111111111111111001 = -1-2-4= -7
4)11111111111111111111111111111000 = -1-1-2-4= -8
5)11111111111111111111111101101011 = -1-4-16-128= -149
6)11111111111111111111111101101100 = -1-1-2-16-128 = -148
```
互补对称现象:-n=~n+1-----取反+1
```java
-7 = 11111111111111111111111111111001 = -1-2-4=-1
~-7 = 00000000000000000000000000000110 = 2+4=6
~-7+1 = 00000000000000000000000000000111 = 1+2+4=7
5 = 00000000000000000000000000000101 = 1+4=5
~5 = 11111111111111111111111111111010 = -1-1-4=-6
~5+1 = 11111111111111111111111111111011 = -1-4=-5
12 = 00000000000000000000000000001100 = 4+8=12
~12 = 11111111111111111111111111110011 = -1-4-8=-13
~12+1 = 11111111111111111111111111110100 = -1-1-2-8=-12
```
4. 位运算
-
取反:~
- 0变1,1变0
-
与运算:&
-
运算规则:逻辑乘法,见0则0
0 & 0 ---------> 0 0 & 1 ---------> 0 1 & 0 ---------> 0 1 & 1 ---------> 1
-
-
或运算:|
-
运算规则:逻辑加法,见1则1
0 | 0 ----------> 0 0 | 1 ----------> 1 1 | 0 ----------> 1 1 | 1 ----------> 1
-
-
右移位运算:>>>
- 运算规则:将2进制数整体向右移动,低位自动溢出舍弃,高位补0
-
左移位运算:<<
- 运算规则:将2进制数整体向左移动,高位自动溢出舍弃,低位补0