![6e96268a1ba5f656e8c1c9857910d23c.png](https://i-blog.csdnimg.cn/blog_migrate/477ca333996ae64ad1c9a2c8388aee28.jpeg)
C语言零基础入门——6.进制转换-2
这一节的任务是讲解 计算机的各个进制之间的转换
1. 前言
- 上一节课我们讲解了进制转换的基本原理:进制转换说到底就是自己定义了一组基本数据,然后又自己定义了进位的规则而已。
- 这一节课我们接着讲解进制相关的内容,我们学习进制的目的是为了更进一步的了解计算机的内部存储,但是我们不能忘记一件事:计算机是给人用的,它的存储也要符合当今的客观规律。也就是说不管是什么进制,最终都能够化为十进制。
2. 十进制与二进制之间的转换
- 这两个之间的转换必须要熟练,因为我们日常生活用的就是十进制,计算机用的是二进制,从这一方面来看,这两个都是非常重要的。
2.1 十进制转二进制
- 我们使用短除法进行,思路就是:用十进制的数一直除2,除的过程中记录下余数,直到这个十进制的被除数变为0(任何一个数除以比自己大的数得到的商为0,余数为本身)。然后把每次除2得到的余数从下往上按照从左往由的顺序排列起来,这个样子得到的0/1串就是十进制数的二进制表示了。是不是看的一脸懵逼,看下边的图就懂了
- 比如:49 转为二进制的转换过程:
![40e85c1ff715939c9121f5401cb1c46d.png](https://i-blog.csdnimg.cn/blog_migrate/5f5be4319516f473f6ad88dcf6c4b948.jpeg)
- 再举一个例子,将128转换成二进制
![b1459144f219b7066b2d4b1a44f2fc2c.png](https://i-blog.csdnimg.cn/blog_migrate/19426f1edaa8dd54d1f27e03d9f69a4a.jpeg)
2.2 二进制转换成十进制
- 二进制转换成十进制的方法有点类似于十进制里边的科学计数法,我们知道十进制的100000用科学计数法表示如图。
![be15fbfb19db7f009eb105112ca7180d.png](https://i-blog.csdnimg.cn/blog_migrate/502f1b1a49fe4855f88bdb136397448a.jpeg)
- 我们一直在用这个表示方法,但是我们有没有深入想过为什么是10的5次方,为什么不是以其他数字作为底数呢?答案是:因为10进制是国际上最常用的计算方法 所以科学计数法也是按照10的倍数来算。也就是说与十进制有关系的。
- 这个样子我们类推一下,我们计算机使用的是二进制,所以我们的底数应该是2,对不对啊!答案是:对的呢!我们就给大家举两个栗子吧!
- 比如:将二进制的 110001 转为十进制表示,如图:
![e3e4331f5fbac80d1b04f87ce7375491.png](https://i-blog.csdnimg.cn/blog_migrate/25470cfd8e0d140aa22e132fe0d94002.jpeg)
- 再比如:把1000 0000转化为十进制
![d1225ddad452a528d6fca7e6d135dbc6.png](https://i-blog.csdnimg.cn/blog_migrate/0e21911836dfef88f678e803447c1020.jpeg)
以上,便是十进制 与 二进制 之间的转换了
3. 二进制与十六进制之间的转换
3.1 二进制与十六进制之间的关系
- 有人要说了,既然计算机里边是存储的二进制,那我们还要16进制干嘛?说的没错,但是只说对了一半,计算机内部使用的确实是2进制存储,但是一串二进制数据放到人的面前,我相信绝大多是人都会是蒙蔽的,完全无法获得我们想要的信息嘛!!!
- 因此16进制就是为了解决这个问题的,一般情况下我们审视的都会是16进制数据,而并非直接去看二进制数据。
3.2 二进制转换为十六进制
- 二进制转换为十六进制,我们熟记一句话就可以了:二进制的四位 等于 十六进制的一位。
- 具体思路:把二进制从右到左按照四位四位进行划分,(最左端凑不够四位的补0),然后把每个四位按照二进制计算出十进制的数值,(这个数值不会超过15,即F)。
- 如下例子:
![6a5cab2f26f75c266bd2aed78fe86910.png](https://i-blog.csdnimg.cn/blog_migrate/aab2210032aaa2aeb749a0079359ae48.jpeg)
- 在如下栗子:
![c517c8b92cb41352b6ecd399d72c9d23.png](https://i-blog.csdnimg.cn/blog_migrate/2283eec724e0104e8d7f8ec55b77be08.jpeg)
- 为了防止初学者蒙蔽,我把对应的转换展示在下边了。自己好好看看
![201a3c52a2f6caadcc796b4f1f3f7a2d.png](https://i-blog.csdnimg.cn/blog_migrate/ae564f61fa286298937560b44e3ff768.jpeg)
这个表不用背,大家看着自己算算,把原理弄明白就好了
3.3十六进制转为二进制
- 这个思路是与二进制转为十六进制的思路相反,只要把十六进制的每一位换成二进制就可以了,(但是一定要确保换回来的是四位,如果不是四位,前边补0即可)
- 例子如下:
![c6465ec99f34933406b1c082643cc46a.png](https://i-blog.csdnimg.cn/blog_migrate/6c97a423408b66108fe406f77de71f06.jpeg)
4. 结束
4.1 上节课作业解答
- 回顾题目:将 小猿笔记 这四个字作为原始数据,用四进制的形式写出 12个 数据。
- 答案:
![8e5aff2f2d976d945ca67ed4f6ac6159.png](https://i-blog.csdnimg.cn/blog_migrate/b7c05a3e50b8c4ab52eec8d1a73856ee.jpeg)
答案如有疑问,请加我私人微信,为您解惑个人微信获取方式:关注公众号“小小猿笔记”,右下角点击即可看到!