【计算机】1+1≠2,计算机是如何算数的

【计算机】1+1≠2,计算机是如何算数的

00:00
08:39

粉丝福利 

严伯钧的硬派科普秀交流群来啦,跟着严老师一起聊聊科普、了解物理界新动向、第一时间get严老师的活动消息,还有不定期的社群活动福利哦。


入群方式

微信添加yan_bojun,并回复:科普秀,我们将会邀请你入群。


欢迎每一位在听《严伯钧的硬派科普秀》的你的到来。


精华笔记 

只使用0和1的信号,计算机到底是如何进行复杂运算的呢?


一、二进制与十进制的转换

1. 二进制就是用0和1来表示数字,规则是逢2进位。例如,2用10来表示,3是11,4是100;


2. 如果把二进制的表示方法转换成十进制呢?方法是先从右往左标位数,一个n位数的二进制数字可以用0到n-1位表示出来;


3. 然后从第0位算起,用每一位的数字,也就是0或者1,乘以2的位数次方,再把这些数字全部加起来。例如1001,转换成十进制就是1+0+0+8=9;

4. 整数计算很简单,而浮点数的计算要用到科学计数法。例如1.3455可以看成是13455乘以10的-4次方,计算机要记录13455和-4就两个数字;


5. 有了这个基本的运算方式,才能进行人类熟悉的十进制运算;


二、加减法电路

6. 计算机运算靠的是逻辑门。根据电流的通断,计算机有三种最基本的逻辑门,分别是AND、OR、NOT;


7. 逻辑门可以分为输入端和输出端。AND门是当两个输入信号都是1的时候,才输出1,否则都输出0。OR门只要有一个输入1,就输出1。NOT门只有一个输入信号,功能是把信号倒转;


8. 这几个基本逻辑门进行组合还能给出更多的逻辑门,比如XOR门,就是当两个输入信号不同的时候,才输出1,其它都输出0;


9. 有了这些逻辑门就可以做二进制的加法运算了。比如0和1之间的加法,首先是个位数字:0+0给出0,0+1和1+0都给出1,但是利用XOR门,可以让1+1给出0,因为1+1=2,表示成二进制是10,个位数确实是0;


10. 而对于十位数,1+1要让十位数是1,这就需要给XOR门并联一个AND门,就可以给出1了。让AND门负责十位数,XOR门负责个位数,一个简单的二进制加法就做出来了;


11. 把这个计算单元作大规模的串并联,就可以给出多位数的二进制加法电路;


| 几种简单的逻辑门


三、积分电路

12. 整数和小数的计算都是离散的,碰到连续的积分运算,计算机是借助基本的物理过程来实现的;


| 积分运算


13. 在电容器充放电的过程中,电量随时间连续变化,它天然就是一个积分的过程;


14. 通过电子元器件的物理原理,可以直接得出积分的数值,这就是积分电路的基本方法。


以上内容来自专辑
用户评论
  • 东成西就73

    老师,二进制的原码,反码和补码是干什么的?

    严伯钧 回复 @东成西就73: 因为我们会在一个二进制前面加1表示负数,但是这样一搞会出现一个正数加上它的相反数不为零的情况,比如3是0011,-3是1011,二者相加不为零,反码和补码就是为了修正这方面Bug而出现的。

  • Kevin___Chen

    严老师,什么时候讲讲各种计算机算法呀?比如遗传算法等等的原理?

    严伯钧 回复 @Kevin___Chen: 有机会讲,这个领域比较细了。

  • 白衬衣的码

    听您讲真的很有意思,这一集我很想听懂奈何我数学是生理卫生老师教的

    严伯钧 回复 @白衬衣的码: 受罪了。

  • a天空a

    1500转换成二进制: 1500/2=750…0 750/2=375…0 375/2=187…1 187/2=93…1 93/2=46…1 46/2=23…0 23/2=11…1 11/2=5…1 5/2=2…1 2/2=1…0 1/2=0…1 (1500)10=(10111011100)2

    严伯钧 回复 @a天空a: 正确

  • 686面前众生平等

    拉普拉斯之箱?独角兽高达?

  • vibh1khvqvn05co7gy40

    二进制还是没太明白

  • 听严老师的物理课

    又复习了一次大学专业基础课。

  • 1530260qpas

    不是还有补码和反码吗

  • 1530260qpas

    不是还有补码和反码吗