diff --git a/docs/notes/01_c-basic/02_xdx/assets/17.png b/docs/notes/01_c-basic/02_xdx/assets/17.png deleted file mode 100644 index 69eadd4..0000000 Binary files a/docs/notes/01_c-basic/02_xdx/assets/17.png and /dev/null differ diff --git a/docs/notes/01_c-basic/02_xdx/assets/18.png b/docs/notes/01_c-basic/02_xdx/assets/18.png deleted file mode 100644 index 35dda66..0000000 Binary files a/docs/notes/01_c-basic/02_xdx/assets/18.png and /dev/null differ diff --git a/docs/notes/01_c-basic/02_xdx/assets/19.svg b/docs/notes/01_c-basic/02_xdx/assets/19.svg new file mode 100644 index 0000000..63fe9b3 --- /dev/null +++ b/docs/notes/01_c-basic/02_xdx/assets/19.svg @@ -0,0 +1,4 @@ + + + +
1
0
1
1
1
1
0
0
0
1
1
1
0
0
0
1
0
1
+
+
+
1 + 0 = 1 ,不满 2,
无需进 1,低位就是 1
1 + 1 = 2 ,满 2 则需进1,
低位变为 0
1 + 0 = 1 ,不满 2,
无需进 1,低位就是 1
1 + 1 = 2 ,满 2 则需进1,
低位变为 0
高位刚开始为 0,进了 1 ,
高位就变为 1
高位刚开始为 0,进了 1 ,
高位就变为 1
1
1
1
1
0
0
1
1
0
+
1
1
1
1 + 1 = 2 ,满 2 则需进1,
低位变为 0
1 + 1 +1 = 3 ,满 2 则需进1,
低位变为 1
1 + 1 +1 = 3 ,满 2 则需进1,
低位变为 1
高位刚开始为 0,进了 1 ,
高位就变为 1
1
1
1
1
1
\ No newline at end of file diff --git a/docs/notes/01_c-basic/02_xdx/assets/20.svg b/docs/notes/01_c-basic/02_xdx/assets/20.svg index 5be63a7..d0b4778 100644 --- a/docs/notes/01_c-basic/02_xdx/assets/20.svg +++ b/docs/notes/01_c-basic/02_xdx/assets/20.svg @@ -1,4 +1,4 @@ -
1
0
0
0
0
0
0
0
0
0
0
1
1
0
0
0
高位
低位
\ No newline at end of file +
1
0
1
0
1
0
1
1
0
0
1
0
1
1
0
1
1
0
-
-
-
1 - 0 = 1 , 无需向高位借 1,
低位就是 1
0 - 1 不够减,向高位借 1,
当作 2,就是 2 - 1,低位变为 1
1 - 0 = 0 , 无需向高位借 1,
低位就是 0
0 - 1 不够减,向高位借 1,
当作 2,就是 2 - 1,低位变为 1
高位刚开始为 1,被低位借走 1,
高位就变为 0
高位刚开始为 1,被低位借走 1,
高位就变为 0
0
1
0
0
1
0
0
1
1
-
1
1
1
0 - 1 不够减,向高位借1,
高位也没有,继续向前借 1,当作 2
0 - 1 不够减,向高位借 1,
变为 2 ,又被低位借走 1 ,变为 1
0 - 1 不够减,向高位借 1,
当作 2,就是 2 - 1,低位变为 1
高位刚开始为 1,被低位借走 1,
高位就变为 0
2
2
2
1
2
2
\ No newline at end of file diff --git a/docs/notes/01_c-basic/02_xdx/assets/21.svg b/docs/notes/01_c-basic/02_xdx/assets/21.svg index 9c4930d..ffb3a2d 100644 --- a/docs/notes/01_c-basic/02_xdx/assets/21.svg +++ b/docs/notes/01_c-basic/02_xdx/assets/21.svg @@ -1,4 +1,4 @@ -
十进制 100
位权相加法
1 ×10²
1
0
0
0 × 10¹
0 × 10⁰
结果
100 = 1 × 10² + 0 × 10¹ + 0 ×  10⁰ 
\ No newline at end of file +
3
4
7
5
6
1
3
0
0
7
4
1
3
0
0
5
2
7
+
+
+
3 + 4 = 7 ,不满 8,
无需进 1,低位就是 7
5 + 6 = 11 ,满 8 则需进1,
低位变为 3
5 + 2 = 7 ,不满 8,
无需进 1,低位就是 7
7 + 4 = 11 ,满 8 则需进1,
低位变为 3
高位刚开始为 0,进了 1 ,
高位就变为 1
高位刚开始为 0,进了 1 ,
高位就变为 1
2
6
3
1
2
0
7
7
6
+
2
4
5
7 + 7 = 14 ,满 8 则需进1,
低位变为 6
1 + 2 + 6 = 9 ,满 8 则需进1,
低位变为 1
4 + 5 + 1 = 10 ,满 8 则需进1,
低位变为 2
高位刚开始为 2,进了 1 ,
高位就变为 3
1
1
1
1
1
\ No newline at end of file diff --git a/docs/notes/01_c-basic/02_xdx/assets/22.svg b/docs/notes/01_c-basic/02_xdx/assets/22.svg index 1c88cc5..3f0b84a 100644 --- a/docs/notes/01_c-basic/02_xdx/assets/22.svg +++ b/docs/notes/01_c-basic/02_xdx/assets/22.svg @@ -1,4 +1,4 @@ -
十进制 100
位权相加法
1 × 2³
1
0
1
0 × 2²
1 × 2¹
结果
11 = 1 × 2³ + 0 × 2² + 1 ×  2¹ + 1 × 2⁰ 
1
1 × 2⁰
\ No newline at end of file +
6
4
2
2
7
2
3
5
2
0
4
1
4
3
1
7
1
6
-
-
-
6 - 4 = 2 , 无需向高位借 1,
低位就是 2
2 - 7 不够减,向高位借1,
当作 8,就是 8 + 2 - 1,低位变为 3
7 - 1 = 6 , 无需向高位借 1,
低位就是 6
0 - 4 不够减,向高位借1,
当作 8,就是 8 - 4,低位变为 4
高位刚开始为 5,被低位借走 1,
就是 5 - 1 - 2 ,高位变为 2
高位刚开始为 3,被低位借走 1,
就是 3 - 1 - 1,高位就变为 1
3
5
5
5
7
1
0
1
7
-
7
4
4
0 - 1 不够减,向高位借 1,
当作 8 ,就是 8 - 1,低位变为 7
2 - 5 不够减,向高位借1,
当作 8 ,就是 8 + 2 - 5 = 5
3 - 1 不够减,向高位借 1,
当作 8,就是 8 + 3 - 1 = 7
高位刚开始为 7,被低位借走 1,
就是 7 - 1 - 1 ,高位就变为 5
2
8
8
8
8
3
8
\ No newline at end of file diff --git a/docs/notes/01_c-basic/02_xdx/assets/23.svg b/docs/notes/01_c-basic/02_xdx/assets/23.svg index b291cb9..1354a7e 100644 --- a/docs/notes/01_c-basic/02_xdx/assets/23.svg +++ b/docs/notes/01_c-basic/02_xdx/assets/23.svg @@ -1,4 +1,4 @@ -
十进制 100
短除法
1
0
0
结果
10
1
0
除数
0
余数
10
1
0
10
1
0
十进制 100
\ No newline at end of file +
6
7
D
8
A
D
2
1
B
9
9
D
2
5
7
5
2
7
+
+
+
6 + 7 = 13 ,不满 16,
无需进 1,低位就是 D
8 + A(10) = 18 ,满 16 则需进1,
低位变为 2
5 + 2 = 7 ,不满 16,
无需进 1,低位就是 7
9 + 9 = 18 ,满 16 则需进1,
低位变为 2
高位刚开始为 1,进了 1 ,
变为 1 + 1 +B(11) = 15,高位就变为 D
高位刚开始为 5,进了 1 ,
变为 5 + 1 + 7 = 13,高位就变为 D
8
8
3
1
2
0
7
A
1
+
F
F
F
7 + A(10) = 17 ,满 16 则需进1,
低位变为 1
1 + 8 + 8 = 17 ,满 16 则需进1,
低位变为 1
1 + F(15) + F(15) = 31 ,
满 16 则需进 1,低位变为 15(F)
高位刚开始为 2,进了 1 ,
高位就变为 3
1
1
1
1
1
\ No newline at end of file diff --git a/docs/notes/01_c-basic/02_xdx/assets/24.svg b/docs/notes/01_c-basic/02_xdx/assets/24.svg index 33880cf..800ee8a 100644 --- a/docs/notes/01_c-basic/02_xdx/assets/24.svg +++ b/docs/notes/01_c-basic/02_xdx/assets/24.svg @@ -1,4 +1,4 @@ -
十进制 13
短除法
1
3
结果
2
除数
1
余数
6
2
0
2
1
0
二进制 1101
3
2
1
1
\ No newline at end of file +
D
3
A
2
F
2
3
5
2
0
4
C
C
E
1
7
1
6
-
-
-
D(13) - 3 = 10 , 无需向高位借 1,
低位就是 A
2 - F 不够减,向高位借1,
当作 16,就是 16 + 2 - 15,低位变为 3
7 - 1 = 6 , 无需向高位借 1,
低位就是 6
0 - 4 不够减,向高位借1,当作 16,
就是 16 - 4 = 12,低位变为 C
高位刚开始为 5,被低位借走 1,
就是 5 - 1 - 2 ,高位变为 2
高位刚开始为 E,被低位借走 1,
就是 14 - 1 - 1 = 12,高位就变为 C
A
B
5
E
7
1
0
1
F
-
F
C
C
0 - 1 不够减,向高位借 1,当作 16 ,就是 16 - 1 = 15,低位变为 F
9 - 11 不够减,向高位借1,当作 16,就是 9 + 16 - 11 = 14,低位变为 E
11 - 12 不够减,向高位借 1,当作 16,就是 11 + 16 - 12 = 15,低位变为 F
高位刚开始为 7,被低位借走 1,
就是 7 - 1 - 1 ,高位就变为 5
9
16
16
16
16
11
16
\ No newline at end of file diff --git a/docs/notes/01_c-basic/02_xdx/assets/19.png b/docs/notes/01_c-basic/02_xdx/assets/25.png similarity index 100% rename from docs/notes/01_c-basic/02_xdx/assets/19.png rename to docs/notes/01_c-basic/02_xdx/assets/25.png diff --git a/docs/notes/01_c-basic/02_xdx/assets/25.svg b/docs/notes/01_c-basic/02_xdx/assets/25.svg deleted file mode 100644 index b23d5b7..0000000 --- a/docs/notes/01_c-basic/02_xdx/assets/25.svg +++ /dev/null @@ -1,4 +0,0 @@ - - - -
二进制 011 101 001
位权相加法
0 × 2²
0
1
1
1 × 2¹
1 × 2⁰
结果
3 = × 2² + 1 ×  2¹ + 1 × 2⁰ 
1 × 2²
1
0
1
0 × 2¹
1 × 2⁰
5 = × 2² + 0 ×  2¹ + 1 × 2⁰ 
0 × 2²
0
0
1
0 × 2¹
1 × 2⁰
1 = × 2² + 0 ×  2¹ + 1 × 2⁰ 
\ No newline at end of file diff --git a/docs/notes/01_c-basic/02_xdx/assets/26.svg b/docs/notes/01_c-basic/02_xdx/assets/26.svg index 8cbcba0..5be63a7 100644 --- a/docs/notes/01_c-basic/02_xdx/assets/26.svg +++ b/docs/notes/01_c-basic/02_xdx/assets/26.svg @@ -1,4 +1,4 @@ -
二进制 1110 1001
位权相加法
1 × 2³
1
1
1
1 × 2²
1 × 2¹
结果
15(E) = ×  + 1 ×   + 1 × 2¹ + 0 × 2⁰  
0
0 × 2⁰
1 × 2³
1
0
0
0 × 2²
0 × 2¹
9 = ×  + 0 ×   + 0 × 2¹ + 1 × 2⁰  
1
1 × 2⁰
\ No newline at end of file +
1
0
0
0
0
0
0
0
0
0
0
1
1
0
0
0
高位
低位
\ No newline at end of file diff --git a/docs/notes/01_c-basic/02_xdx/assets/27.svg b/docs/notes/01_c-basic/02_xdx/assets/27.svg index 8405397..9c4930d 100644 --- a/docs/notes/01_c-basic/02_xdx/assets/27.svg +++ b/docs/notes/01_c-basic/02_xdx/assets/27.svg @@ -1,4 +1,4 @@ -
0
0
1
0
0
0
0
0
0
1
0
1
0
0
1
0
高位
低位
正数
负数
1
0
0
0
1
0
0
0
0
0
0
1
1
0
0
0
符号位
符号位
最高位
最高位
机器数
机器数
\ No newline at end of file +
十进制 100
位权相加法
1 ×10²
1
0
0
0 × 10¹
0 × 10⁰
结果
100 = 1 × 10² + 0 × 10¹ + 0 ×  10⁰ 
\ No newline at end of file diff --git a/docs/notes/01_c-basic/02_xdx/assets/28.svg b/docs/notes/01_c-basic/02_xdx/assets/28.svg index 6c0e93f..1c88cc5 100644 --- a/docs/notes/01_c-basic/02_xdx/assets/28.svg +++ b/docs/notes/01_c-basic/02_xdx/assets/28.svg @@ -1,4 +1,4 @@ -
0
0
1
0
0
0
0
0
0
1
0
1
0
0
1
0
高位
低位
正数
负数
1
0
0
0
1
0
0
0
0
0
0
1
1
0
0
0
符号位
符号位
最高位
最高位
真值(数据位)
真值(数据位)
机器数
机器数
\ No newline at end of file +
十进制 100
位权相加法
1 × 2³
1
0
1
0 × 2²
1 × 2¹
结果
11 = 1 × 2³ + 0 × 2² + 1 ×  2¹ + 1 × 2⁰ 
1
1 × 2⁰
\ No newline at end of file diff --git a/docs/notes/01_c-basic/02_xdx/assets/29.svg b/docs/notes/01_c-basic/02_xdx/assets/29.svg index 2acb251..b291cb9 100644 --- a/docs/notes/01_c-basic/02_xdx/assets/29.svg +++ b/docs/notes/01_c-basic/02_xdx/assets/29.svg @@ -1,4 +1,4 @@ -
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
高位
低位
+0 的原码
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
符号位
最高位
真值(数据位)
机器数
+0 的反码
+0 的补码
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
\ No newline at end of file +
十进制 100
短除法
1
0
0
结果
10
1
0
除数
0
余数
10
1
0
10
1
0
十进制 100
\ No newline at end of file diff --git a/docs/notes/01_c-basic/02_xdx/assets/30.svg b/docs/notes/01_c-basic/02_xdx/assets/30.svg index bb82983..33880cf 100644 --- a/docs/notes/01_c-basic/02_xdx/assets/30.svg +++ b/docs/notes/01_c-basic/02_xdx/assets/30.svg @@ -1,4 +1,4 @@ -
1
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
高位
低位
-0 的原码
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
符号位
最高位
真值(数据位)
机器数
-0 的反码
-0 的补码
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
1
溢出,丢弃
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
\ No newline at end of file +
十进制 13
短除法
1
3
结果
2
除数
1
余数
6
2
0
2
1
0
二进制 1101
3
2
1
1
\ No newline at end of file diff --git a/docs/notes/01_c-basic/02_xdx/assets/31.svg b/docs/notes/01_c-basic/02_xdx/assets/31.svg index 29f26ac..b23d5b7 100644 --- a/docs/notes/01_c-basic/02_xdx/assets/31.svg +++ b/docs/notes/01_c-basic/02_xdx/assets/31.svg @@ -1,4 +1,4 @@ -
0
0
0
0
0
0
0
0
原码运算
0
0
0
0
0
1
1
0
6 的原码
6 + (-18)采用原码计算
-18 的原码
1
0
0
0
0
0
0
0
0
0
0
1
0
0
1
0
结果(原码)
1
0
0
0
0
0
0
0
0
0
0
1
1
0
0
0
符号位
数值位(真值)
-24
\ No newline at end of file +
二进制 011 101 001
位权相加法
0 × 2²
0
1
1
1 × 2¹
1 × 2⁰
结果
3 = × 2² + 1 ×  2¹ + 1 × 2⁰ 
1 × 2²
1
0
1
0 × 2¹
1 × 2⁰
5 = × 2² + 0 ×  2¹ + 1 × 2⁰ 
0 × 2²
0
0
1
0 × 2¹
1 × 2⁰
1 = × 2² + 0 ×  2¹ + 1 × 2⁰ 
\ No newline at end of file diff --git a/docs/notes/01_c-basic/02_xdx/assets/32.svg b/docs/notes/01_c-basic/02_xdx/assets/32.svg index d24337b..8cbcba0 100644 --- a/docs/notes/01_c-basic/02_xdx/assets/32.svg +++ b/docs/notes/01_c-basic/02_xdx/assets/32.svg @@ -1,4 +1,4 @@ -
0
0
0
0
0
0
0
0
0
0
0
0
0
1
1
0
6 的原码(反码)
6 + (-18)采用反码计算
-18 的原码
1
0
0
0
0
0
0
0
0
0
0
1
0
0
1
0
结果(反码)
1
1
1
1
1
1
1
1
1
1
1
1
0
0
1
1
符号位
数值位(真值)
-18 的反码
1
1
1
1
1
1
1
1
1
1
1
0
1
1
0
1
1
0
0
0
0
0
0
0
0
0
0
0
1
1
0
0
结果(原码)
反码运算
-12
\ No newline at end of file +
二进制 1110 1001
位权相加法
1 × 2³
1
1
1
1 × 2²
1 × 2¹
结果
15(E) = ×  + 1 ×   + 1 × 2¹ + 0 × 2⁰  
0
0 × 2⁰
1 × 2³
1
0
0
0 × 2²
0 × 2¹
9 = ×  + 0 ×   + 0 × 2¹ + 1 × 2⁰  
1
1 × 2⁰
\ No newline at end of file diff --git a/docs/notes/01_c-basic/02_xdx/assets/33.svg b/docs/notes/01_c-basic/02_xdx/assets/33.svg index 0bbf08a..8405397 100644 --- a/docs/notes/01_c-basic/02_xdx/assets/33.svg +++ b/docs/notes/01_c-basic/02_xdx/assets/33.svg @@ -1,4 +1,4 @@ -
0
0
0
0
0
0
0
0
0
0
0
1
0
0
1
0
18 的原码(反码)
18 + (-6)采用反码计算
-6 的原码
1
0
0
0
0
0
0
0
0
0
0
0
0
1
1
0
结果(反码)
0
0
0
0
0
0
0
0
0
0
0
0
1
0
1
1
符号位
数值位(真值)
-6 的反码
1
1
1
1
1
1
1
1
1
1
1
1
1
0
0
1
0
0
0
0
0
0
0
0
0
0
0
0
1
0
1
1
结果(原码)
反码运算
11
1
溢出,丢弃
\ No newline at end of file +
0
0
1
0
0
0
0
0
0
1
0
1
0
0
1
0
高位
低位
正数
负数
1
0
0
0
1
0
0
0
0
0
0
1
1
0
0
0
符号位
符号位
最高位
最高位
机器数
机器数
\ No newline at end of file diff --git a/docs/notes/01_c-basic/02_xdx/assets/34.svg b/docs/notes/01_c-basic/02_xdx/assets/34.svg index f31c8c0..6c0e93f 100644 --- a/docs/notes/01_c-basic/02_xdx/assets/34.svg +++ b/docs/notes/01_c-basic/02_xdx/assets/34.svg @@ -1,4 +1,4 @@ -
0
0
0
0
0
0
0
0
0
0
0
0
0
1
1
0
6 的原码(反码,补码)
6 + (-18)采用补码计算
-18 的原码
1
0
0
0
0
0
0
0
0
0
0
1
0
0
1
0
结果(补码)
1
1
1
1
1
1
1
1
1
1
1
1
0
1
0
0
符号位
数值位(真值)
-18 的反码
1
1
1
1
1
1
1
1
1
1
1
0
1
1
0
1
1
1
1
1
1
1
1
1
1
1
1
1
0
0
1
1
结果(反码)
补码运算
-12
1
1
1
1
1
1
1
1
1
1
1
0
1
1
1
0
-18 的补码
结果(原码)
1
0
0
0
0
0
0
0
0
0
0
0
1
1
0
0
\ No newline at end of file +
0
0
1
0
0
0
0
0
0
1
0
1
0
0
1
0
高位
低位
正数
负数
1
0
0
0
1
0
0
0
0
0
0
1
1
0
0
0
符号位
符号位
最高位
最高位
真值(数据位)
真值(数据位)
机器数
机器数
\ No newline at end of file diff --git a/docs/notes/01_c-basic/02_xdx/assets/35.svg b/docs/notes/01_c-basic/02_xdx/assets/35.svg index 2548443..2acb251 100644 --- a/docs/notes/01_c-basic/02_xdx/assets/35.svg +++ b/docs/notes/01_c-basic/02_xdx/assets/35.svg @@ -1,4 +1,4 @@ -
0
0
0
0
0
0
0
0
0
0
0
1
0
0
1
0
18 的原码(反码,补码)
18 + (-6)采用补码计算
-6 的原码
1
0
0
0
0
0
0
0
0
0
0
0
0
1
1
0
结果(补码)
0
0
0
0
0
0
0
0
0
0
0
0
1
1
0
0
符号位
数值位(真值)
-6 的反码
1
1
1
1
1
1
1
1
1
1
1
1
1
0
0
1
0
0
0
0
0
0
0
0
0
0
0
0
1
1
0
0
结果(反码)
补码运算
12
1
溢出,丢弃
1
1
1
1
1
1
1
1
1
1
1
1
1
0
1
0
-6 的补码
结果(原码)
0
0
0
0
0
0
0
0
0
0
0
0
1
1
0
0
\ No newline at end of file +
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
高位
低位
+0 的原码
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
符号位
最高位
真值(数据位)
机器数
+0 的反码
+0 的补码
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
\ No newline at end of file diff --git a/docs/notes/01_c-basic/02_xdx/assets/36.svg b/docs/notes/01_c-basic/02_xdx/assets/36.svg new file mode 100644 index 0000000..bb82983 --- /dev/null +++ b/docs/notes/01_c-basic/02_xdx/assets/36.svg @@ -0,0 +1,4 @@ + + + +
1
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
高位
低位
-0 的原码
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
符号位
最高位
真值(数据位)
机器数
-0 的反码
-0 的补码
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
1
溢出,丢弃
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
\ No newline at end of file diff --git a/docs/notes/01_c-basic/02_xdx/assets/37.svg b/docs/notes/01_c-basic/02_xdx/assets/37.svg new file mode 100644 index 0000000..29f26ac --- /dev/null +++ b/docs/notes/01_c-basic/02_xdx/assets/37.svg @@ -0,0 +1,4 @@ + + + +
0
0
0
0
0
0
0
0
原码运算
0
0
0
0
0
1
1
0
6 的原码
6 + (-18)采用原码计算
-18 的原码
1
0
0
0
0
0
0
0
0
0
0
1
0
0
1
0
结果(原码)
1
0
0
0
0
0
0
0
0
0
0
1
1
0
0
0
符号位
数值位(真值)
-24
\ No newline at end of file diff --git a/docs/notes/01_c-basic/02_xdx/assets/38.svg b/docs/notes/01_c-basic/02_xdx/assets/38.svg new file mode 100644 index 0000000..d24337b --- /dev/null +++ b/docs/notes/01_c-basic/02_xdx/assets/38.svg @@ -0,0 +1,4 @@ + + + +
0
0
0
0
0
0
0
0
0
0
0
0
0
1
1
0
6 的原码(反码)
6 + (-18)采用反码计算
-18 的原码
1
0
0
0
0
0
0
0
0
0
0
1
0
0
1
0
结果(反码)
1
1
1
1
1
1
1
1
1
1
1
1
0
0
1
1
符号位
数值位(真值)
-18 的反码
1
1
1
1
1
1
1
1
1
1
1
0
1
1
0
1
1
0
0
0
0
0
0
0
0
0
0
0
1
1
0
0
结果(原码)
反码运算
-12
\ No newline at end of file diff --git a/docs/notes/01_c-basic/02_xdx/assets/39.svg b/docs/notes/01_c-basic/02_xdx/assets/39.svg new file mode 100644 index 0000000..0bbf08a --- /dev/null +++ b/docs/notes/01_c-basic/02_xdx/assets/39.svg @@ -0,0 +1,4 @@ + + + +
0
0
0
0
0
0
0
0
0
0
0
1
0
0
1
0
18 的原码(反码)
18 + (-6)采用反码计算
-6 的原码
1
0
0
0
0
0
0
0
0
0
0
0
0
1
1
0
结果(反码)
0
0
0
0
0
0
0
0
0
0
0
0
1
0
1
1
符号位
数值位(真值)
-6 的反码
1
1
1
1
1
1
1
1
1
1
1
1
1
0
0
1
0
0
0
0
0
0
0
0
0
0
0
0
1
0
1
1
结果(原码)
反码运算
11
1
溢出,丢弃
\ No newline at end of file diff --git a/docs/notes/01_c-basic/02_xdx/assets/40.svg b/docs/notes/01_c-basic/02_xdx/assets/40.svg new file mode 100644 index 0000000..f31c8c0 --- /dev/null +++ b/docs/notes/01_c-basic/02_xdx/assets/40.svg @@ -0,0 +1,4 @@ + + + +
0
0
0
0
0
0
0
0
0
0
0
0
0
1
1
0
6 的原码(反码,补码)
6 + (-18)采用补码计算
-18 的原码
1
0
0
0
0
0
0
0
0
0
0
1
0
0
1
0
结果(补码)
1
1
1
1
1
1
1
1
1
1
1
1
0
1
0
0
符号位
数值位(真值)
-18 的反码
1
1
1
1
1
1
1
1
1
1
1
0
1
1
0
1
1
1
1
1
1
1
1
1
1
1
1
1
0
0
1
1
结果(反码)
补码运算
-12
1
1
1
1
1
1
1
1
1
1
1
0
1
1
1
0
-18 的补码
结果(原码)
1
0
0
0
0
0
0
0
0
0
0
0
1
1
0
0
\ No newline at end of file diff --git a/docs/notes/01_c-basic/02_xdx/assets/41.svg b/docs/notes/01_c-basic/02_xdx/assets/41.svg new file mode 100644 index 0000000..2548443 --- /dev/null +++ b/docs/notes/01_c-basic/02_xdx/assets/41.svg @@ -0,0 +1,4 @@ + + + +
0
0
0
0
0
0
0
0
0
0
0
1
0
0
1
0
18 的原码(反码,补码)
18 + (-6)采用补码计算
-6 的原码
1
0
0
0
0
0
0
0
0
0
0
0
0
1
1
0
结果(补码)
0
0
0
0
0
0
0
0
0
0
0
0
1
1
0
0
符号位
数值位(真值)
-6 的反码
1
1
1
1
1
1
1
1
1
1
1
1
1
0
0
1
0
0
0
0
0
0
0
0
0
0
0
0
1
1
0
0
结果(反码)
补码运算
12
1
溢出,丢弃
1
1
1
1
1
1
1
1
1
1
1
1
1
0
1
0
-6 的补码
结果(原码)
0
0
0
0
0
0
0
0
0
0
0
0
1
1
0
0
\ No newline at end of file diff --git a/docs/notes/01_c-basic/02_xdx/index.md b/docs/notes/01_c-basic/02_xdx/index.md index ce47fad..39a5796 100644 --- a/docs/notes/01_c-basic/02_xdx/index.md +++ b/docs/notes/01_c-basic/02_xdx/index.md @@ -815,7 +815,7 @@ int main() { > [!NOTE] > -> 在十六进制中,除了 0 到 9 这十个数字之外,还引入了字母,以便表示超过 9 的值。字母 A 对应十进制的 10 ,字母 B 对应十进制的 11 ,以此类推,字母 F 对应十进制的 15。 +> 在十六进制中,除了 `0` 到 `9` 这十个数字之外,还引入了字母,以便表示超过 `9` 的值。其中,字母 `A` 对应十进制的 `10` ,字母 `B` 对应十进制的 `11` ,字母 `C` 对应十进制的 `12`,字母 `D` 对应十进制的 `13`,字母 `E` 对应十进制的 `14`,字母 `F` 对应十进制的 `15`。 * 进制的换算举例,如下所示: @@ -963,6 +963,8 @@ int main() { ## 3.3 进制的运算规则 +### 3.3.1 概述 + * `十进制`的运算规则,如下所示: * 逢`十`进`一`(针对加法而言)。 * 借`一`当`十`(针对减法而言)。 @@ -976,17 +978,47 @@ int main() { * 逢`十六`进`一`(针对加法而言)。 * 借`一`当`十六`(针对减法而言)。 +### 3.3.2 二进制的运算 + +* 二进制的加法:`1 + 0 = 1` 、`1 + 1 = 10`、`11 + 10 = 101`、`111 + 111 = 1110`。 + +![](./assets/19.svg) + +* 二进制的减法:`1 - 0 = 1` 、`10 - 1 = 1`、`101 - 11 = 10`、`1100 - 111 = 101` 。 + +![](./assets/20.svg) + +### 3.3.3 八进制的运算 + +* 八进制的加法:`3 + 4 = 7` 、`5 + 6 = 13`、`75 + 42 = 137`、`2427 + 567 = 3216`。 + +![](./assets/21.svg) + +* 八进制的减法:`6 - 4 = 2` 、`52 - 27 = 33`、`307 - 141 = 146`、`7430 - 1451 = 5757` 。 + +![](./assets/22.svg) + +### 3.3.4 十六进制的运算 + +* 十六进制的加法:`6 + 7 = D` 、`18 + BA = D2`、`595 + 792 = D27`、`2F87 + F8A = 3F11`。 + +![](./assets/23.svg) + +* 十六进制的减法:`D - 3 = A` 、`52 - 2F = 23`、`E07 - 141 = CC6`、`7CA0 - 1CB1 = 5FEF` 。 + +![](./assets/24.svg) + ## 3.4 进制的转换 ### 3.4.1 概述 * 不同进制的转换,如下所示: -![](./assets/19.png) +![](./assets/25.png) * 在计算机中,数据是从右往左的方式排列的;其中,最右边的是低位,最左边的是高位,即: -![](./assets/20.svg) +![](./assets/26.svg) ### 3.4.2 二进制和十进制的转换 @@ -1003,13 +1035,13 @@ int main() { * 示例:十进制转十进制 -![](./assets/21.svg) +![](./assets/27.svg) * 示例:二进制转十进制 -![](./assets/22.svg) +![](./assets/28.svg) #### 3.4.2.2 十进制转换二进制 @@ -1025,13 +1057,13 @@ int main() { * 示例:十进制转十进制 -![](./assets/23.svg) +![](./assets/29.svg) * 示例:十进制转二进制 -![](./assets/24.svg) +![](./assets/30.svg) ### 3.4.3 二进制转八进制 @@ -1041,7 +1073,7 @@ int main() { * 示例:011 101 001 -> 351 -![](./assets/25.svg) +![](./assets/31.svg) @@ -1053,7 +1085,7 @@ int main() { * 示例:1110 1001 -> 0xE9 -![](./assets/26.svg) +![](./assets/32.svg) ## 3.5 原码、反码和补码 @@ -1065,7 +1097,7 @@ int main() { > > 这里讨论的适用于`符号位`的整数,如:int 等;而不适用于`无符号位`的整数,即:unsinged int 等。 -![](./assets/27.svg) +![](./assets/33.svg) * 真值(数据位):因为机器数带有符号位,所以机器数的形式值不等于其真实表示的值(真值),以机器数 1000 0001 为例,其真正表示的值(首位是符号位)为 -1,而形式值却是 129 ,因此将带有符号位的机器数的真正表示的值称为机器数的真值。 @@ -1073,7 +1105,7 @@ int main() { > > 这里讨论的适用于`符号位`的整数,如:int 等;而不适用于`无符号位`的整数,即:unsinged int 等。 -![](./assets/28.svg) +![](./assets/34.svg) ### 3.5.2 原码 @@ -1146,11 +1178,11 @@ int main() { * 如果 `0` ,按照 `+0` 的情况进行处理,如下所示: -![](./assets/29.svg) +![](./assets/35.svg) * 如果 `0` ,按照 `-0` 的情况进行处理,如下所示: -![](./assets/30.svg) +![](./assets/36.svg) > [!IMPORTANT] > @@ -1183,7 +1215,7 @@ int main() { > > 直接使用原码表示整数,让符号位也参与运算,那么对于减法来说,结果显然是不正确的。 -![](./assets/31.svg) +![](./assets/37.svg) * 于是,人们开始继续探索,不断试错,终于设计出了`反码`,如下所示: @@ -1191,7 +1223,7 @@ int main() { > > 直接使用反码表示整数,让符号位也参与运算,对于 6 +(-18)来说,结果貌似正确。 -![](./assets/32.svg) +![](./assets/38.svg) * 如果我们将`被减数`和`减数`对调一下,即:计算 `18 - 6` 的结果,也就是 `18 +(-6)`的结果,继续采用`反码`来进行运算,如下所示: @@ -1200,15 +1232,15 @@ int main() { > * ① 6 - 18,即:6+(-18),如果采用`反码`计算,结果是正确的;但是,18 - 6,即:18 +(-6),如果采用`反码`计算,结果相差 1 。 > * ② 可以推断:如果按照`反码`来计算,小数 - 大数,结果正确;而大数 - 小数,结果相差 1 。 -![](./assets/33.svg) +![](./assets/39.svg) * 对于这个相差的 `1` 必须进行纠正,但是又不能影响`小数-大数`的结果。于是,人们又绞尽脑汁设计出了`补码`,给`反码`打了一个`“补丁”`,终于把相差的 `1` 给纠正过来了。那么,`6 - 18` 按照`补码`的运算过程,如下所示: -![](./assets/34.svg) +![](./assets/40.svg) * 那么,`18 - 6` 按照`补码`的运算过程,如下所示: -![](./assets/35.svg) +![](./assets/41.svg) > [!IMPORTANT] >