From 53ce49fc4766478cedeb8876ca777130191dde80 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E8=AE=B8=E5=A4=A7=E4=BB=99?= <1900919313@qq.com> Date: Mon, 19 Aug 2024 15:40:31 +0800 Subject: [PATCH] c --- docs/notes/01_c-basic/02_xdx/assets/17.png | Bin 19752 -> 0 bytes docs/notes/01_c-basic/02_xdx/assets/18.png | Bin 27358 -> 0 bytes docs/notes/01_c-basic/02_xdx/assets/19.svg | 4 ++ docs/notes/01_c-basic/02_xdx/assets/20.svg | 2 +- docs/notes/01_c-basic/02_xdx/assets/21.svg | 2 +- docs/notes/01_c-basic/02_xdx/assets/22.svg | 2 +- docs/notes/01_c-basic/02_xdx/assets/23.svg | 2 +- docs/notes/01_c-basic/02_xdx/assets/24.svg | 2 +- .../02_xdx/assets/{19.png => 25.png} | Bin docs/notes/01_c-basic/02_xdx/assets/25.svg | 4 -- docs/notes/01_c-basic/02_xdx/assets/26.svg | 2 +- docs/notes/01_c-basic/02_xdx/assets/27.svg | 2 +- docs/notes/01_c-basic/02_xdx/assets/28.svg | 2 +- docs/notes/01_c-basic/02_xdx/assets/29.svg | 2 +- docs/notes/01_c-basic/02_xdx/assets/30.svg | 2 +- docs/notes/01_c-basic/02_xdx/assets/31.svg | 2 +- docs/notes/01_c-basic/02_xdx/assets/32.svg | 2 +- docs/notes/01_c-basic/02_xdx/assets/33.svg | 2 +- docs/notes/01_c-basic/02_xdx/assets/34.svg | 2 +- docs/notes/01_c-basic/02_xdx/assets/35.svg | 2 +- docs/notes/01_c-basic/02_xdx/assets/36.svg | 4 ++ docs/notes/01_c-basic/02_xdx/assets/37.svg | 4 ++ docs/notes/01_c-basic/02_xdx/assets/38.svg | 4 ++ docs/notes/01_c-basic/02_xdx/assets/39.svg | 4 ++ docs/notes/01_c-basic/02_xdx/assets/40.svg | 4 ++ docs/notes/01_c-basic/02_xdx/assets/41.svg | 4 ++ docs/notes/01_c-basic/02_xdx/index.md | 68 +++++++++++++----- 27 files changed, 93 insertions(+), 37 deletions(-) delete mode 100644 docs/notes/01_c-basic/02_xdx/assets/17.png delete mode 100644 docs/notes/01_c-basic/02_xdx/assets/18.png create mode 100644 docs/notes/01_c-basic/02_xdx/assets/19.svg rename docs/notes/01_c-basic/02_xdx/assets/{19.png => 25.png} (100%) delete mode 100644 docs/notes/01_c-basic/02_xdx/assets/25.svg create mode 100644 docs/notes/01_c-basic/02_xdx/assets/36.svg create mode 100644 docs/notes/01_c-basic/02_xdx/assets/37.svg create mode 100644 docs/notes/01_c-basic/02_xdx/assets/38.svg create mode 100644 docs/notes/01_c-basic/02_xdx/assets/39.svg create mode 100644 docs/notes/01_c-basic/02_xdx/assets/40.svg create mode 100644 docs/notes/01_c-basic/02_xdx/assets/41.svg 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 69eadd4a040449749941d7713bf6338081b2b4e9..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 19752 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 + + +
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] >