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

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


比如,你的电脑是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 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的形式,那么用"按权相加"法,得:

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 。


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值