Thanks to visit codestin.com
Credit goes to github.com

Skip to content

Commit 1c6c83b

Browse files
authored
Add files via upload
1 parent 5bdb505 commit 1c6c83b

20 files changed

+2832
-0
lines changed
Lines changed: 26 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,26 @@
1+
## 流程控制基本概念
2+
3+
- 默认情况下程序运行后,系统会按书写顺序从上至下依次执行程序中的每一行代码。但是这并不能满足我们所有的开发需求, 为了方便我们控制程序的运行流程,C语言提供3种流程控制结构,不同的流程控制结构可以实现不同的运行流程。
4+
- 这3种流程结构分别是顺序结构、选择结构、循环结构
5+
- 顺序结构:
6+
7+
+ 按书写顺序从上至下依次执行
8+
![](https://img-blog.csdnimg.cn/img_convert/9071191723644a2b0364126c8a5bd65f.png)
9+
10+
- 选择结构
11+
12+
+ 对给定的条件进行判断,再根据判断结果来决定执行代码
13+
![](https://img-blog.csdnimg.cn/img_convert/0e8b2f8b6230aedf754eab312605ce23.png)
14+
![](https://img-blog.csdnimg.cn/img_convert/e4452dcd9857466ecc0957fb4453b3a3.png)
15+
16+
- 循环结构
17+
18+
+ 在给定条件成立的情况下,反复执行某一段代码
19+
![](https://img-blog.csdnimg.cn/img_convert/4899d440537583bc28f3bc17bd2b7ae1.png)
20+
![](https://img-blog.csdnimg.cn/img_convert/3f74e2788a1ccbaf1028b1360c514c70.png)
21+
22+
---
23+
24+
如果大家想要实时关注我们更新的文章以及分享的干货的话,可以关注我们的微信公众号“**代码情缘**”。
25+
26+
![我的公众号](https://cdn.nlark.com/yuque/0/2021/jpeg/12653647/1635665327539-b1156e20-fe8c-430b-9c24-1f3b834942ac.jpeg)

notes/入门/10.进制基本概念.md

Lines changed: 41 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,41 @@
1+
## 进制基本概念
2+
3+
- 什么是进制?
4+
5+
+ 进制是一种计数的方式,数值的表示形式
6+
7+
- 常见的进制
8+
9+
+ 十进制、二进制、八进制、十六进制
10+
11+
- 进制书写的格式和规律
12+
13+
+ 十进制 0、1、2、3、4、5、6、7、8、9 逢十进一
14+
+ 二进制 0、1 逢二进一
15+
16+
* 书写形式:需要以0b或者0B开头,例如: 0b101
17+
18+
+ 八进制 0、1、2、3、4、5、6、7 逢八进一
19+
20+
* 书写形式:在前面加个0,例如: 061
21+
22+
+ 十六进制 0、1、2、3、4、5、6、7、8、9、A、B、C、D、E、F 逢十六进一
23+
24+
* 书写形式:在前面加个0x或者0X,例如: 0x45
25+
26+
- 练习
27+
28+
+ 1.用不同进制表示如下有多少个方格
29+
![](https://img-blog.csdnimg.cn/img_convert/ca48b49abde038c455a5c4ea0789e2ee.png)
30+
31+
+ 2.判断下列数字是否合理
32+
33+
```c
34+
00011 0x001 0x7h4 10.98 0986 .089-109
35+
+178 0b325 0b0010 0xffdc 96f 96.0f 96.oF -.003
36+
```
37+
38+
39+
40+
最后,如果有任何疑问,欢迎加微信 **leader_fengy** 拉你进学习交流群
41+

notes/入门/11.进制转换.md

Lines changed: 239 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,239 @@
1+
## 进制转换
2+
3+
- 10 进制转 2 进制
4+
5+
+ 除2取余, 余数倒序; 得到的序列就是二进制表示形式
6+
+ 例如: 将十进制(97) 10转换为二进制数
7+
![](https://img-blog.csdnimg.cn/img_convert/bf4d5af2fc35c2fffaf62ee00a34c9d2.png)
8+
9+
---
10+
11+
- 2 进制转 10 进制
12+
13+
- 每一位二进制进制位的值 * 2的当前索引次幂; 再将所有位求出的值相加
14+
- 例如: 将二进制01100100转换为十进制
15+
16+
```c
17+
01100100
18+
索引从右至左, 从零开始
19+
0位: 0 * 2^0 = 0;
20+
1位: 0 * 2^1 = 0;
21+
2位: 1 * 2^2 = 4;
22+
3位: 0 * 2^3 = 0;
23+
4位: 0 * 2^4 = 0;
24+
5位: 1 * 2^5 = 32;
25+
6位: 1 * 2^6 = 64;
26+
7位: 0 * 2^7 = 0;
27+
最终结果为: 0 + 0 + 4 + 0 + 0 + 32 + 64 + 0 = 100
28+
```
29+
30+
------
31+
32+
- 2 进制转 8 进制
33+
34+
- 三个二进制位代表一个八进制位, 因为3个二进制位的最大值是7,而八进制是逢8进1
35+
- 例如: 将二进制01100100转换为八进制数
36+
37+
```c
38+
从右至左每3位划分为8进制的1位, 不够前面补0
39+
001 100 100
40+
0位: 100 等于十进制 4
41+
1位: 100 等于十进制 4
42+
2位: 001 等于十进制 1
43+
最终结果: 144就是转换为8进制的值
44+
```
45+
46+
------
47+
48+
- 2 进制转 16 进制
49+
50+
- 四个二进制位代表一个十六进制位,因为4个二进制位的最大值是15,而十六进制是逢16进1
51+
- 例如: 将二进制01100100转换为十六进制数
52+
53+
```c
54+
从右至左每4位划分为16进制的1位, 不够前面补0
55+
0110 0100
56+
0位: 0100 等于十进制 4
57+
1位: 0110 等于十进制 6
58+
最终结果: 64就是转换为16进制的值
59+
```
60+
61+
------
62+
63+
- 其它进制转换为十进制
64+
65+
- 系数 * 基数 ^ 索引 之和
66+
67+
```c
68+
十进制 --> 十进制
69+
12345 = 10000 + 2000 + 300 + 40 + 5
70+
= (1 * 10 ^ 4) + (2 * 10 ^ 3) + (3 * 10 ^ 2) + (4 * 10 ^ 1) + (5 * 10 ^ 0)
71+
= (1 * 10000) + (2 + 1000) + (3 * 100) + (4 * 10) + (5 * 1)
72+
= 10000 + 2000 + 300 + 40 + 5
73+
= 12345
74+
75+
规律:
76+
其它进制转换为十进制的结果 = 系数 * 基数 ^ 索引 之和
77+
78+
系数: 每一位的值就是一个系数
79+
基数: 从x进制转换到十进制, 那么x就是基数
80+
索引: 从最低位以0开始, 递增的数
81+
```
82+
83+
```c
84+
二进制 --> 十进制
85+
543210
86+
101101 = (1 * 2 ^ 5) + (0 * 2 ^ 4) + (1 * 2 ^ 3) + (1 * 2 ^ 2) + (0 * 2 ^ 1) + (1 * 2 ^ 0)
87+
= 32 + 0 + 8 + 4 + 0 + 1
88+
= 45
89+
90+
八进制 --> 十进制
91+
016 = (0 * 8 ^ 2) + (1 * 8 ^ 1) + (6 * 8 ^ 0)
92+
= 0 + 8 + 6
93+
= 14
94+
95+
十六进制 --> 十进制
96+
0x11f = (1 * 16 ^ 2) + (1 * 16 ^ 1) + (15 * 16 ^ 0)
97+
= 256 + 16 + 15
98+
= 287
99+
```
100+
101+
------
102+
103+
- 十进制快速转换为其它进制
104+
105+
- 十进制除以`基数`取余, 倒叙读取
106+
107+
```c
108+
十进制 --> 二进制
109+
100 --> 1100100
110+
100 / 2 = 50 0
111+
50 / 2 = 25 0
112+
25 / 2 = 12 1
113+
12 / 2 = 6 0
114+
6 / 2 = 3 0
115+
3 / 2 = 1 1
116+
1 / 2 = 0 1
117+
118+
119+
十进制 --> 八进制
120+
100 --> 144
121+
100 / 8 = 12 4
122+
12 / 8 = 1 4
123+
1 / 8 = 0 1
124+
125+
十进制 --> 十六进制
126+
100 --> 64
127+
100 / 16 = 6 4
128+
6 / 16 = 0 6
129+
```
130+
131+
------
132+
133+
## 十进制小数转换为二进制小数
134+
135+
- 整数部分,直接转换为二进制即可
136+
- 小数部分,使用"乘2取整,顺序排列"
137+
- 用2乘十进制小数,可以得到积,将积的整数部分取出,再用2乘余下的小数部分,直到积中的小数部分为零,或者达到所要求的精度为止
138+
- 然后把取出的整数部分按顺序排列起来, 即是小数部分二进制
139+
- 最后将整数部分的二进制和小数部分的二进制合并起来, 即是一个二进制小数
140+
- 例如: 将12.125转换为二进制
141+
142+
```c
143+
// 整数部分(除2取余)
144+
12
145+
/ 2
146+
------
147+
6 // 余0
148+
/ 2
149+
------
150+
3 // 余0
151+
/ 2
152+
------
153+
1 // 余1
154+
/ 2
155+
------
156+
0 // 余1
157+
//12 --> 1100
158+
159+
// 小数部分(乘2取整数积)
160+
0.125
161+
* 2
162+
------
163+
0.25 //0
164+
0.25
165+
* 2
166+
------
167+
0.5 //0
168+
0.5
169+
* 2
170+
------
171+
1.0 //1
172+
0.0
173+
// 0.125 --> 0.001
174+
175+
// 12.8125 --> 1100.001
176+
```
177+
178+
------
179+
180+
## 二进制小数转换为十进制小数
181+
182+
- 整数部分按照二进制转十进制即可
183+
- 小数部分从最高位开始乘以2的负n次方, n从1开始
184+
- 例如: 将 1100.001转换为十进制
185+
186+
```c
187+
// 整数部分(乘以2的n次方, n从0开始)
188+
0 * 2^0 = 0
189+
0 * 2^1 = 0
190+
1 * 2^2 = 4
191+
1 * 2^3 = 8
192+
// 1100 == 8 + 4 + 0 + 0 == 12
193+
194+
// 小数部分(乘以2的负n次方, n从0开始)
195+
0 * (1/2) = 0
196+
0 * (1/4) = 0
197+
1 * (1/8) = 0.125
198+
// .100 == 0 + 0 + 0.125 == 0.125
199+
200+
// 1100.001 --> 12.125
201+
```
202+
203+
- 练习:
204+
- 将0.8125转换为二进制
205+
- 将0.1101转换为十进制
206+
207+
```c
208+
0.8125
209+
* 2
210+
--------
211+
1.625 // 1
212+
0.625
213+
* 2
214+
--------
215+
1.25 // 1
216+
0.25
217+
* 2
218+
--------
219+
0.5 // 0
220+
* 2
221+
--------
222+
1.0 // 1
223+
0.0
224+
225+
// 0. 8125 --> 0.1101
226+
1*(1/2) = 0.5
227+
1*(1/4)=0.25
228+
0*(1/8)=0
229+
1*(1/16)=0.0625
230+
231+
//0.1101 --> 0.5 + 0.25 + 0 + 0.0625 == 0.8125
232+
```
233+
234+
##
235+
236+
最后,如果有任何疑问,请加微信 leader_fengy 拉你进学习交流群。
237+
238+
239+

0 commit comments

Comments
 (0)