计算机基础:二进制基础03,二进制数的位基和位权
专栏导航
本节文章分别属于《Win32 学习笔记》和《MFC 学习笔记》两个专栏,故划分为两个专栏导航。读者可以自行选择前往哪个专栏。
(一)WIn32 专栏导航
上一篇:计算机基础:二进制基础02,用二进制来计数
回到目录
下一篇:无
(二)MFC 专栏导航
上一篇:计算机基础:二进制基础02,用二进制来计数
回到目录
下一篇:无
本节前言
在上一节,我讲了二进制数的计数方法。
本节呢,我们来讲解二进制的位基和位权。
一. 二进制数的位基
一个数,它是多少进制的,它的位基就是多少。十进制数的位基是 10,二进制数的位基是 2。同理,八进制数的位基是 8,十六进制数的位基是 16 。
表示十进制数的基本的符号是0,1,2,3,……7,8,9,一共是10个符号。
表示二进制数的基本符号为0,1,一共是2个符号。
某一个进制的位基是多少,则构成这一进制数的基本符号就有多少个。
二. 十进制数的数位与位权
我们来看一个十进制数,720163。我们把这个数拆解开来。

在图1里面,我挨个位地,排列了 720163 这个数,并且呢,我们将它的每个数位都给标注了出来。
现在呢,我们需要用新的办法来标注这个数的不同的位。
720163,这个数的最右边的位是个位,个位的1,代表的,是1。我们可以个位记作 。
正好等于 1 。
720163,这个数从右往左数,第2位是十位。十位上的1,代表的是10,我们可以将十位记作 。
正好等于10 。
720163,这个数从右往左数,第3位是百位。百位上的1,代表的是100,我们可以将百位记作 。
正好等于100 。
720163,这个数从右往左数,第4位是千位。千位上的1,代表的是1000,我们可以将千位记作 。
正好等于1000 。
720163,这个数从右往左数,第5位是万位。万位上的1,代表的是10000,我们可以将其记作 。
正好等于10000 。
720163,这个数从右往左数,第6位是十万位。十万位上的1,代表的是100000。我们可以将十万位记作 。
正好等于100000 。
我们重新地标注一下这个数字。结果如下
7 | 2 | 0 | 1 | 6 | 3 |
这样一来,原来的个位,我们现在用 来标注。原来的十位,我们现在用
来标注。原来的百位,我们用
来标注。原来的千位,我们用
来标注。原来的万位,我们用
来标注。原来的十万位,我们用
来标注。
新的标注方法里面,都是以10为底,不同的是指数。最低位的指数是0。再往左,指数依次为1,2,3,4,5。
现在,我们再来添加点东西,重新标注 720163 这个数。
位权 | ||||||
位名 | 5 | 4 | 3 | 2 | 1 | 0 |
数值 | 7 | 2 | 0 | 1 | 6 | 3 |
我们将 ,
,
等等的东西,叫做位权。权在文言文里面,它是秤砣的意思,它可以用来称量物体的轻重。秤砣是用来衡量分量的东西。位权就是表示,某一数位的 1,代表着多大的数,代表的分量是多少。
我们将位权一行中,指数的部分提取出来,让它作为数位的名字。这样一来,原来的个位,现在就是位 0 。原来的百位,现在成了位 2 。原来的千位,现在成了位 3,等等。
我们看到,在这里,我们标记数位的方法,它是说,最低位,它的位名是 0,再往左,依次是1,2,3,4,5 。
位名和位权是一一对应的。以十进制数为例,如果某一位的位名是 7,则此位的位权为 。我们也可以将这个事情表述为,十进制数的位 7 的位权为
。
一个十进制数,它的位基为 10。
一个十进制数,无论它的位名是多少,它的某一位的位权,均为 10 的 [位名] 次幂。
十进制的位 0,它的位基为 10,位名为 0,所以,它的位权为 。
十进制的位 1,它的位基为 10,位名为 1,所以,它的位权为 。
十进制的位 2,它的位基为 10,位名为 2,所以,它的位权为 。
十进制的位 3,它的位基为 10,位名为 3,所以,它的位权为 。
十进制的位 4,它的位基为 10,位名为 4,所以,它的位权为 。
十进制的位 5,它的位基为 10,位名为 5,所以,它的位权为 。
一个数,不论它是十进制数,还是八进制,二进制,十六进制数,无论它的位基和位名是多少,它的某一位的位权,均为 [位基] 的 [位名] 次幂。
三. 二进制的数位与位权
我们在上一分节的讲解,主要是为了引出二进制的数位与位权的讲解。
在上面,我们提到了如下所述的结论。
一个数,不论它是十进制数,还是八进制,二进制,十六进制数,无论它的位基和位名是多少,它的某一位的位权,均为 [位基] 的 [位名] 次幂。
而一个数,我们在命名它的位名的时候,都将类似于十进制的个位的那个位,命名为【位 0】 ,再往左,依次是【位 1】,【位 2】,【位3】,【位 4】,等等。
这样一来,我们试着对二进制数 101101 进行一下拆解。
位权 | ||||||
位名 | 5 | 4 | 3 | 2 | 1 | 0 |
数 | 1 | 0 | 1 | 1 | 0 | 1 |
上面的东西,大家应该能理解了吧?
四. 将一个二进制数转化为十进制数
我们先不去看,如何将二进制数转换为十进制数。我们先来看一看,如何用一种新的表示法,来说明一个十进制数的值。
720163,这个数,我们在第二分节中,就是用它来举例的。在这里,我们还是用它来举例。
720163,我们再次将它的数位分节表格列在下面。
位权 | ||||||
位名 | 5 | 4 | 3 | 2 | 1 | 0 |
数值 | 7 | 2 | 0 | 1 | 6 | 3 |
720163 = 7 × 100000 + 2 × 10000 + 0 × 1000 + 1 × 100 + 6 × 10 + 3 × 1
= 7 × + 2 ×
+ 0 ×
+ 1 ×
+ 6 ×
+ 3 ×
我们可以从上面的式子的分解,总结出规律。对于某一个十进制数的值的大小,等同于,先将各个位上的数乘以它的位权,再将不同的数位的 [数 × 位权] 的乘积加起来的和。
我们可以将十进制数的求值,推广任意数制的数字的求值。
对于任意数制的某一个数,它的大小等同于,先将各个位上的数乘以它的位权,再将不同的数位的 [数 × 位权] 的乘积加起来的和。
因此,我们可以求一下二进制数 101101 的等价十进制数。我们还是先将它的拆解表格给列出来。
位权 | ||||||
位名 | 5 | 4 | 3 | 2 | 1 | 0 |
数 | 1 | 0 | 1 | 1 | 0 | 1 |
0B 101101 = 1 × + 0 ×
+ 1 ×
+ 1 ×
+ 0 ×
+ 1 ×
= 1 × 32 + 0 × 16 + 1 × 8 + 1 × 4 + 0 × 2 + 1 × 1
= 45
到这里呢,我想,对于一个二进制数的求值,也就是把它转换为对应的十进制数的方法,我差不多就算是讲完了。
不过呢,在上面,我只讲了一个例子。例子的数目太少了。
我再给出来两个例子吧。再给出两个例子,其实例题数也还是少。不过呢,我相信,再给出两个例子,应该是足以令你理解,如何将二进制转换为十进制的解题步骤了。
五. 两个例题
(一)例题1 求出 0B 101011 对应的十进制数
首先呢,我们还是用表格来分解这个数
位权 | ||||||
位名 | 5 | 4 | 3 | 2 | 1 | 0 |
数 | 1 | 0 | 1 | 0 | 1 | 1 |
0B 101101 = 1 × + 0 ×
+ 1 ×
+ 0 ×
+ 1 ×
+ 1 ×
= 1 × 32 + 0 × 16 + 1 × 8 + 0 × 4 + 1 × 2 + 1 × 1
= 43
(二)例题二 求出 0B 11011 对应的十进制数
首先呢,我们还是用表格来分解这个数
位权 | |||||
位名 | 4 | 3 | 2 | 1 | 0 |
数 | 1 | 1 | 0 | 1 | 1 |
0B 11011 = 1 × + 1 ×
+ 0 ×
+ 1 ×
+ 1 ×
= 1 × 16 + 1 × 8 + 0 × 4 + 1 × 2 + 1 × 1
= 27
到了这里,我想,本节的内容,也就可以了。
结束语
本节的内容,很多人大概是学习过的。根据你的情况来学习吧。学过就可以不看,或者快点看。没有学习过,那就认真一些地来看吧。
其实,本专栏所讲的二进制,位运算的知识,可能,很多人不需要专门来学习这一块的知识。然而,我不能假定所有人都学过。如果你学的是Java,python,那么,我不知道相关的教材里面,是否有讲解二进制与位运算的知识。
所以,为了统一后续的学习步调,让大家达到统一的基础,我还是选择去讲解。
希望大家能够将本节的知识给学好。
专栏导航
本节文章分别属于《Win32 学习笔记》和《MFC 学习笔记》两个专栏,故划分为两个专栏导航。读者可以自行选择前往哪个专栏。
(一)WIn32 专栏导航
上一篇:计算机基础:二进制基础02,用二进制来计数
回到目录
下一篇:无
(二)MFC 专栏导航
上一篇:计算机基础:二进制基础02,用二进制来计数
回到目录
下一篇:无