上一篇“扫盲贴”聊了聊二进制,很多朋友反应:"看过之后很懵圈!"
所以,这段时间我也在极力的反思,究竟用一个什么样的方式能让大家更好的理解这些东西。
后来终于想明白了,为什么非要让大家理解这些东西呢?就是扫个盲,难道还指望让大家看完之后,去设计计算机么?写这个专栏的初衷就是让大家了解计算机这个行业,或是互联网这个行业,明白我们整天忙忙叨叨的做了些什么...
复习一下上期的内容吧:
为什么要使用二进制?
因为电子元件只能识别两种状态,“通电”、“不通电”,但“不通电”的状态很难去区分到底是真“不通电”还是坏了,所以改用“高电平”和“低电平”来表示计算机世界中的事物。
用1表示“高电平”,用0表示“低电平”,这样即方便我们使用,也便于与真实的世界对应。
这就是使用二进制的原因,因为只有用二进制,才能让计算机懂得我们,为我们效力。
如何在计算机里玩转二进制?
运算
上期聊过了,二进制可以和十进制、八进制、十六进制转换,那完成了二进制的运算就可以完成十进制、八进制、十六进制的运算了。
基本的运算是加减乘除,但终归可以都转为加法。
减法是加上一个负数、乘法就是N个相同的数相加、除法就是乘以一个倒数。没错,只要大家明白这个,然后学会加法,以及负数、倒数的转换,是不是常规运算就实现了?具体怎么做暂不聊,这里只聊加法。
加法:
由于二进制只有0和1两种状态,所以加法的结果很简单,只有0、1、10,这些电子元件也很容易实现。
0+0
好比两股低电流从你身体经过,最终从大地流走,身体并不会有太大的反应,流入大地的也是电低流;电子元件也如此,两个低电平输入,流出一股低电平,所以0+0=0。
1+0
好比一高一低两股电流从身体经过,这是身体就有感觉了,而电流从大地流出去的也是高电流,电子元件也如此,所以就可以表示1+0=1。
1+1
好比两股高电流从身体经过,最终从大地流走,这时身体就会受不了,会爆表;电子元件也是如此,但人们为了不让电子元件不被烧毁,会设计一个保护措施,即从中引出一条引线把高电流引走,然后输出一股低电流,所以1+1=10,0就是输出的那股低电流,1就是引出去的高电流,引到哪里?引给其它位上0和1的运算,就是所谓的“进位”。
所以在计算机内部,就是不停的在进行0和1之间的运算,以此来表示我们通常的计算。
在计算机中,所有的0、1运算都在CPU里进行,所以CPU的优劣决很大程度决定着计算机的运算能力。
为什么要说“很大程度”?因为光计算快还不够,还要有源源不断的0和1被输入到CPU里,才能把它的作用发挥到极致,为了更有效的让计算机去运算,人们发明了内存、显卡等等,就是为了更有效的压榨CPU,这些原理以后找机会再聊,今天的主题就说到这吧。