从进制开始学习的原因
由于我们要学习编程的原理,而不只是单单的学习编程,所以就要去学习计算机底层实现的原理。
但是计算机只认识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 = 1*10*10 + 2*10 +3 = 1*进制*进制 + 2*进制 +3,
2在十位的原因是因为他有2个10,是进位而来的,1在百位是因为有10个10进位而来的。
那么上面的2进制1000 实际等于 1*2*2*2+0*2*2+0*2+0 = 8
怎么样懂了吗?
例:
二进制111转换成10进制
111 = 1*2*2 +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
视频链接:
计算的二进制理解
QQ交流群:833075627



