目录

【飞郁2022新课程】03 - 计算机底层的二进制

【飞郁2022新课程】03 - 计算机底层的二进制

飞郁网络

听说你们学编程不想学基础?

说实话,我还不想教呢! 基础理论乏味的很,哼!凸显不出我高深的技术!

不过啊! 基础有多好,**“一定”**决定了你以后高度有多高

**“一定”要听老师的劝,前面枯燥的几天基础“一定”**要好好学

俗话说的好,听人劝吃饱饭!

我前几天去医院看一个老大爷,他就劝我

小伙子,赚钱没有用,你**“一定”**带不走…

从进制开始学习的原因

由于我们要学习编程的原理,而不只是单单的学习编程,所以就要去学习计算机底层实现的原理。

但是计算机只认识2进制,那么我们想要了解其本质,就必须了解进制。

刨根问底,方能成就大业,否则这些知识一定带不走…(Call back)

实际上我们无论写出什么样的代码,最后都是变成2进制被计算机执行的,也就是说我们要学习进制,其实主要就是要学习2进制。

从10进制的角度看待进制

10进制非常简单,我们现实生活中最常用的就是十进制。

10进制是由 0,1,2,3,4,5,6,7,8,9 共10个符号组成的逢10进1的一种进制。

这里面要注意的是,10进制中是没有10这个符号的, 哪个符号来代表10呢?其实是没有的。

10是由1和 0 ,2个符号组成的,而不是单独的一个符号。

知道了10进制的定义,我们引申出n进制定义。

n进制定义:由n个符号组成 逢n进位 。

n进制中是没有n这个符号的 。

**例:**2进制有2个符号组成,里面有2吗?

没有,逢2进位了,只有 0和1这2个符号。

生活中还有很多其他进制。

时间有60进制和24进制,分别是逢60进1和逢24进1。

一打啤酒12瓶,就是12进制,逢12进1。

进制的转换

进制我们谁都会,只是我们没有把他抽象成文字

例如

70秒你立刻就知道是1分钟零10秒,想想怎么算的呢?

25瓶你立刻就知道是两打零1个,又是怎么计算的呢?

自己莫名其妙的就会吧? 只是自己没有总结方法吧?

所以啊,我不是教你知识, 只是知识挖掘工,帮助你挖掘潜能。

看一下为什么70秒等于1分钟零10秒

70秒/进制 = 70秒/60 = 1分钟 余10秒

怎么样?得到什么启发了吗?

十进制转二进制

那么十进制3转成二进制等于多少?

3/2 = 1 余 1 十进制3 = 二进制 11 是不是很简单呢?

需要除多次的十进制转二进制大家可以不掌握,因为我们只要知道原理就可以了

例:

十进制 12 转 二进制

直接12除以2 看看有多少个进位

12/2 = 60 (此时6在第二位,但是二进制是没有6的,所以要继续除)= 300(同理继续)= 1100(完全符合2进制的要求了)

二进制转十进制

一小箱白酒可以装2瓶 ,一个礼盒可以装2小箱,一大箱又可以装二个礼盒

请问 1大箱是多少瓶? 是不是感觉自己还是会的? 答案很简单:8瓶

其实就是对应的二进制转十进制 1000 = 8,列出来可能又看不懂了

那么我们来看看原理:

一个十进制数123,1为什么在百位?2为什么在十位?3为什么在个位?

实际上123 = 11010 + 210 +3 = 1进制进制 + 2进制 +3,

2在十位的原因是因为他有2个10,是进位而来的,1在百位是因为有10个10进位而来的。

那么上面的2进制1000 实际等于 1222+022+02+0 = 8

怎么样懂了吗?

例:

二进制111转换成10进制

111 = 122 +1*2+1 = 7

这样2进制就转换成10进制了

例:

二进制 10000000000 = 十进制 1024

进制的运算

二进制加法

(101)2+(111)2=?

101

+ 111


1100

1+1=10,逢二进一

二进制减法

 (1111)2-(1001)2 =?

​ 11110

- 10011


​ 1011

10-1=1,被减数不够减向高位借1

2.学员问答

问:老师计算机底层存的是二进制还是十进制?

答:首先同学搞乱了概念, 一个仓库里存了很多很多的酒,是按照什么进制存的?

你按照几进制,他也是那些酒,进制只是一个统计方式而已,计算机底层是用二进制来进行描述,你要转换成10进制的方式表达也是没问题的。

3.习题+考核

1.二进制加减法

101+110 111+101

1111+111 100110+101101

10110-1011 11010-10101

2.特殊的二进制加法

11+11 101+101

110+110 1101+1101

是否能发现其中规律?

3.二进制转十进制

(1111)2 (1000)2

(111)2 (101)2

(111000)2 (1001)2

4.十进制转二进制

10 15

31 64

100 255

5.应用题

大鸟有5个萝卜和5个坑,一个萝卜一个坑,他想用这些萝卜和坑来表示一个数值,那么最多能表示多少个数值?

答:最多可以表示1+(11111)2个数值,也就是10进制的32。

解析:萝卜放到坑里代表1,不放坑里代表0,最小值为0,最大值为(11111)2。

PS:本题重在理解,谢绝抬杠!否则你“一定”学不会(call back)!