您的位置:首页 > 其它

第二讲,我们来谈谈:“什么是二进制”

2014-10-29 15:15 253 查看
首先,你要记住并且不要问为什么:“在计算机中,所有的数据,最终都是使用二进制数表达的。

比如,你的电脑是32位系统,还是64位系统。其实,说的是你的电脑的计算存储能力,能够计算存储2的32次方之多的数据,或2的64次方之多的数据。一看到32,64,可能有些人会说,电脑怎么才计算存储这么点数据呀?且慢,我先带你算算2的32次方或64次方是多少。
――――――――――――――――――――――――――――――――――――――1:2的0次方2:2的1次方(第 1 个手指)4:2的2次方(第 2 个手指)【2(次方)2得四】8:2的3次方(第 3 个手指)【3(次方)八,这…】16:2的4次方(第 4 个手指)【4(次方)4十六】32:2的5次方(第 5 个手指)【5(次方)等于32中的3+2】64:2的6次方(第 6 个手指)【6(次方)对应64】128:2的7次方(第 7 个手指)【七(次方)和1音形都很相近】256:2的8次方(第 8 个手指)【八(次方)和二,就10分完美】512:2的9次方(第 9 个手指)【九(次方)五之尊】1024:2的10次方(第 10 个手指)【10(次方)对应1024】从2的0次方到10次方,哪怕做不到脱口而出,起码也要做到屈指可数。――――――――――――――――――――――――――――――――――――――2048:2的11次方4096:2的12次方8192:2的13次方16385:2的14次方32768:2的15次方65536:2的16次方131072:2的17次方262144:2的18次方524288:2的19次方1048576:2的20次方――――――――――――――――――――――――――――――――――――――………………………………
太多了,算不下去了。有兴趣的自己算吧。看看你还敢不敢说2的32次方或64次方小。

好了,言归正传,好好来理解一下“二进制”的精髓。
先拿一个二进制的整数来说:0111,在二进制中,是这样理解的:0X(2的3次方) + 1X(2的2次方) + 1X(2的1次方) + 1X(2的0次方) = 0X8 + 1X4 + 1X2 + 1X1 = 7。――――――――――――――――――――――――――――――――――――――――解读:从该某某进制的数的小数点左边第一位往左算,分别对应乘以该进制的0次方->乘以该进制的1次方->乘以该进制的2次方->乘以该进制的3次方…
再拿一个二进制的小数来说:0.0111,在二进制中,是这样理解的:0X(2的-1次方) + 1X(2的-2次方) + 1X(2的-3次方) + 1X(2的-4次方) = 0X(1/2) + 1X(1/4) + 1X(1/8) + 1X(1/16) = 你自己算吧。――――――――――――――――――――――――――――――――――――――――解读:从该某某进制的数的小数点右边第一位往右算,分别对应乘以该进制的-1次方->乘以该进制的-2次方->乘以该进制的-3次方->乘以该进制的-4次方…题外话:不要告诉我不懂“负次方”!负次方:一个数的正次方的倒数,即为其负次方。

所以,二进制的数,转换成十进制,很简单。只需将该二进制的数,按照小数点左边和右边,写成加权系数展开式,然后按十进制加法规则求和。这种做法称为"按权相加"法。
例:二进制的:0111.0111 = 0X(2的3次方) + 1X(2的2次方) + 1X(2的1次方) + 1X(2的0次方) + 0X(2的-1次方) + 1X(2的-2次方) + 1X(2的-3次方) + 1X(2的-4次方) = 0X8 + 1X4 + 1X2 + 1X1 + 0X(1/2) + 1X(1/4) + 1X(1/8) + 1X(1/16) = 你自己算吧。

那反过来,十进制的数,如何转换成二进制?
讲这个之前,先看个例子:
假设十进制整数A,转换成二进制数为dcba的形式,那么用"按权相加"法,得:A = a X (2的0次方) + b X (2的1次方) + c X (2的2次方) + d X (2的3次方)
等式左右两边同时除以2,得:A/2 = a X (2的0次方)/2 + b X (2的1次方)/2 + c X (2的2次方)/2 + d X (2的3次方)/2上面等式右边,因为只有 a 是乘以 2的0次方 这一项,所以被2除不开而被余下来;所以第一次除以2,将得到余数,即其二进制的小数点左边第一位 a ;
上面等式右边,把 a 取出来,得到的商:b X (2的0次方) + c X (2的1次方) + d X (2的2次方) 第二次除以2,得:b X (2的0次方)/2 + c X (2的1次方)/2 + d X (2的2次方)/2上面式子中,因为只有 b 是乘以 2的0次方 这一项,所以被2除不开而被余下来;所以第二次除以2,将得到余数,即其二进制的小数点左边第二位 b ;
……以为类推,除以2取余数得到的商再除以2再取余数,将不断得到其二进制的小数点左边第一二三四……位 abcd 。

再看个例子:
假设十进制小数B,转换成二进制数为0.efgh的形式,那么用"按权相加"法,得:B = e X (2的-1次方) + f X (2的-2次方) + g X (2的-3次方) + h X (2的-4次方)
等式左右两边同时乘以2,得:BX2 = e X (2的-1次方) X2 + f X (2的-2次方) X2 + g X (2的-3次方) X2 + h X (2的-4次方) X2上面等式右边,因为只有 e 是乘以 2的-1次方 这一项,所以乘以2而变成整数;
所以第一次乘以2,将得到整数部分,即其二进制的小数点右边第一位 e ;
上面等式右边,把 e 取出来,剩下的小数部分:f X (2的-1次方) + g X (2的-2次方) + h X (2的-3次方) 第二次乘以2,得:f X (2的-1次方) X2 + g X (2的-2次方) X2 + h X (2的-3次方) X2上面式子中,因为只有 f 是乘以 2的-1次方 这一项,所以乘以2而变成整数;所以第二次乘以2,将得到整数部分,即其二进制的小数点右边第二位 f ;
……以为类推,乘以2取整数部分剩下的小数部分再乘以2再取整数部分,将不断得到其二进制的小数点右边第一二三四……位 efgh 。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: