▷二进制,十进制,八进制和十六进制系统是什么以及它如何工作
目录:
- 如何执行编号系统转换
- 编号系统
- 十进制
- 二元制
- 八进制
- 十六进制系统
- 二进制和十进制系统之间的转换
- 将数字从二进制转换为十进制
- 将十进制数转换为二进制
- 将小数十进制数转换为二进制
- 将小数二进制数转换为十进制
- 八进制与二进制之间的转换
- 将数字从二进制转换为八进制
- 将八进制数转换为二进制
- 八进制与十进制之间的转换
- 将十进制数转换为八进制
- 将八进制数转换为十进制
- 十六进制与十进制之间的转换
- 将十进制数转换为十六进制
- 将数字从十六进制转换为十进制
如果您是计算机科学,电子学或任何工程学的学生,那么您应该知道的一件事就是执行编号系统转换。 在计算中,所使用的编号系统与我们传统上已知的编号系统不同,十进制系统也是如此。 这就是为什么,如果我们将自己全力投向技术领域(包括计算,编程和类似领域),我们将需要了解最常用的系统以及如何将一个系统转换为另一个系统。
内容索引
如何执行编号系统转换
知道十进制到二进制的转换系统(反之亦然)特别有用,因为它是计算机组件直接使用的编号系统。 但是了解十六进制也是非常有用的,因为它用于表示颜色代码,键和来自我们团队的大量代码。
编号系统
编号系统由一组符号和规则的表示组成,这些符号和规则使我们能够构建有效的数字。 换句话说,它包括使用一系列有界符号,利用这些有界符号可以无限制地形成其他数值。
不用过多地定义数学术语,人类和机器最常使用的系统如下:
十进制
它是一种位置编号系统,其中的数量由数字十的算术基数表示。
由于底数是十,因此我们将能够使用十个众所周知的数字来构建所有图形。 0、1, 2、3、4、5、6、7、8和9 。 这些数字将用于表示任何数字形式的10的幂的位置。
因此,我们可以在此编号系统中以以下方式表示数字:
我们看到一个十进制数是每个项所占的位置1处以10为基数的每个值的总和。 对于其他编号系统中的转换,我们将牢记这一点。
二元制
二进制系统是一种使用算术基数2的编号系统,该系统是计算机和数字系统内部用于执行绝对所有过程的系统。
该编号系统仅由两个数字0和1表示 ,这就是为什么它基于2(两个数字)的原因,将建立所有的价值链。
八进制
与前面的解释一样,我们已经可以想象八进制系统是什么。 八进制系统是使用算术基数8的编号系统,也就是说,我们将有8个不同的数字来表示所有数字。 它们将是: 0、1、2、3、4、5、6和7。
十六进制系统
按照前面的定义,十进制编号系统是一个基于数字16的位置编号系统。在这一点上,我们将问自己,如果例如10是两个数字的组合,我们将如何获得16个不同的数字不一样吗
好吧,很简单,我们发明了它们,而不是我们,而是发明了有关系统的人。 我们在这里拥有的数字将是: 0、1、2、3、4、5、6、7、8、9,A,B,C,D,E和F。 这总共有16个不同的术语。 如果您曾经设置过一种颜色的数字代码,则它具有这种类型的编号方式,这就是为什么您会看到例如白色表示为值FFFFFF的原因。 稍后我们将了解这意味着什么。
二进制和十进制系统之间的转换
因为这是最基本且最容易理解的,所以我们将首先在这两个编号系统之间进行转换。
将数字从二进制转换为十进制
正如我们在第一部分中所看到的,我们代表一个十进制数字,它是值的总和乘以10的幂到它所占据的位置1 。 如果将其应用于任何二进制数及其相应的基数,则将具有以下内容:
1个 | 0 | 0 | 1个 | 1个 |
0 |
1·2 5 | 1·2 4 | 1·2 3 | 1·2 2 | 1·2 1 |
1·2 0 |
但是,当然,如果按照十进制方式执行该过程,则将获得除0和1以外的值,这些值只能在此编号系统中表示。
但这恰好对执行转换为十进制的系统非常有用。 让我们计算其框中每个值的结果:
1个 | 0 | 0 | 1个 | 1个 |
0 |
1·2 5 = 32 |
1·2 4 = 0 | 1·2 3 = 0 | 1·2 2 = 4 | 1·2 1 = 2 |
1·2 0 = 0 |
好吧,如果我们对每个单元格得出的这些值进行求和,则将获得二进制值的十进制等效值。
100110的十进制值为38
我们只需要将数字(0或1)乘以它的底数(2)即可升到图中占据的位置1。 我们将这些值相加,然后将数字保留为十进制。
如果您不确定,我们现在将执行相反的过程:
将十进制数转换为二进制
如果在将数字与总和相乘以确定十进制值之前,现在我们要做的是将十进制数除以要转换为十进制数的系统的基数,在这种情况下为2。
我们将执行此过程,直到不再可能进行任何进一步的划分为止。 让我们看一下如何做的例子。
编号 |
38 | 19 | 9 | 4 | 2 | 1个 |
师 |
÷2 = 19 |
÷2 = 9 | ÷2 = 4 | ÷2 = 2 | ÷2 = 1 |
-- |
休息一下 | 0 | 1个 | 1个 | 0 | 0 |
1个 |
这是使连续划分最小化的结果。 您可能已经意识到这是如何工作的。 如果现在取每个除法的余数,并将其位置求逆,则将获得十进制数的二进制值。 就是说,从我们结束分割的地方开始:
所以我们得到以下结果:100110
正如我们所看到的,我们设法拥有与本节开头完全相同的数字。
将小数十进制数转换为二进制
众所周知,不仅有整数,而且还可以找到实数(分数)。 作为编号系统,应该可以将数字从十进制转换为二进制。 我们看到了如何做。 让我们以数字38, 375为例
我们必须做的是 将每个部分分开 。 我们已经知道如何计算整数部分,因此我们将直接进入小数部分。
步骤如下: 我们必须取小数部分,然后乘以系统的底数2 。 乘法的结果必须再次相乘,直到得到小数部分0为止 。 如果在进行乘法运算时出现带整数部分的派系数,则只需要对下一个乘法取小数即可。 让我们看一下示例以更好地理解它。
编号 |
0.375 | 0.75 | 0.50 |
乘法运算 | * 2 = 0.75 | * 2 = 1.50 |
* 2 = 1.00 |
整个部分 | 0 | 1个 |
1个 |
如我们所见,我们将小数部分再乘以一次,直到达到1.00,结果始终为0。
38, 375的二进制结果将是100 110, 011
但是,如果在此过程中我们永远无法达到1.00的结果,会发生什么? 让我们看一下38, 45的例子
编号 |
0.45 | 0.90 | 0.80 | 0.60 | 0.20 | 0.40 | 0.80 |
乘法运算 | * 2 = 0.90 | * 2 = 1.80 | * 2 = 1.60 | * 2 = 1.20 | * 2 = 0.40 | * 2 = 0.80 | * 2 = 1.60 |
整个部分 | 0 | 1个 | 1个 | 1个 | 0 | 0 |
1个 |
正如我们所看到的,从0.80开始,过程变为周期性的 ,也就是说, 我们将永远不会完成该过程,因为从0.8到0.4的数字将始终出现。 那么我们的结果将是十进制数的近似值,我们走的越远,我们获得的精度就越高。
因此:38.45 = 100 110, 01110011001 1001 …
让我们看看如何进行反向过程
将小数二进制数转换为十进制
此过程将以与正常基数更改相同的方式执行,但从逗号开始,幂将为负 。 让我们只取前一个二进制数的整数部分:
0 | 1个 | 1个 | 1个 | 0 | 0 |
1个 |
… |
0·2 -1 = 0 | 1·2 -2 = 0.25 | 1·2 -3 = 0.125 | 1·2 -4 = 0.0625 | 1·2 -5 = 0 | 1·2 -6 = 0 | 1·2 -7 = 0.0078125 | … |
如果添加结果,我们将获得:
0.25 + 0.125 + 0.0625 + 0.0078125 = 0.4453
如果我们继续进行操作,我们将越来越接近于38.45的确切值
八进制与二进制之间的转换
现在,我们将继续了解如何在非十进制的两个系统之间执行转换,为此,我们将采用八进制和二进制系统 ,并且将执行与前面几节相同的过程。
将数字从二进制转换为八进制
这两个编号系统之间的转换非常简单, 因为八进制的基数与二进制系统相同,但是提高到3,2 3 = 8的幂 。 因此,基于此,我们要做的是将二进制术语从右至左分为三组,并直接转换为十进制数。 让我们看一下数字100110的示例:
1个 | 0 | 0 | 1个 | 1个 | 0 |
100 | 110 | ||||
0·2 2 = 4 | 0·2 1 = 0 | 1·2 0 = 0 | 1·2 2 = 4 | 1·2 1 = 2 | 0·2 0 = 0 |
4 | 6 |
我们将每三位数字分组,然后转换为十进制。 最终结果将是100110 = 46
但是,如果我们没有完美的3人小组怎么办? 例如1001101,我们有两组3,一组1,让我们看看如何进行:
0 | 0 | 1个 | 0 | 0 | 1个 | 1个 | 0 | 1个 |
001 | 100 | 110 | ||||||
0·2 2 = 0 | 0·2 1 = 0 | 1·2 0 = 1 | 0·2 2 = 0 | 0·2 1 = 0 | 1·2 0 = 1 | 1·2 2 = 4 | 1·2 1 = 0 | 1·2 0 = 1 |
1个 | 1个 | 5 |
按照该步骤,我们从术语的右边开始选择组,当到达末尾时,我们将根据需要填充尽可能多的零。 在这种情况下,我们需要两个来完成最后一组 。 所以1001101 = 115
将八进制数转换为二进制
好吧,该过程就像相反的操作一样简单,即以3为一组从二进制转换为十进制。让我们看一下数字115
价值 | 1个 | 1个 | 5 | ||||||
师 | ÷2 = 0 | 0 | 0 | ÷2 = 0 | 0 | 0 | ÷2 = 2 | ÷2 = 1 | -- |
休息一下 | 1个 | 0 | 0 | 1个 | 0 | 0 | 1个 | 0 | 1个 |
组别 | 001 | 001 | 101 |
这样,我们看到115 = 001001101或等于115 = 1001101
八进制与十进制之间的转换
现在,我们将看到如何执行从八进制数系统到小数,反之亦然的过程。 我们将看到该过程与十进制和二进制系统完全相同 ,只是我们必须将基数更改为8而不是2。
我们将直接用小数部分来执行程序。
将十进制数转换为八进制
按照十进制二进制方法的过程,我们将以238.32为例进行执行 :
整个部分。 我们除以8:
编号 | 238 | 29 | 3 |
师 | ÷8 = 29 | ÷8 = 3 | -- |
休息一下 | 6 | 5 | 3 |
小数部分,我们乘以基数,即8:
编号 | 0.32 | 0.56 | 0.48 | 0.84 | 0.72 | … |
乘法运算 | * 8 = 2.56 | * 8 = 4.48 | * 8 = 3.84 | * 8 = 6.72 | * 8 = 5.76 | … |
整个部分 | 2 | 4 | 3 | 6 | 5 | … |
获得的结果如下:238.32 = 356.24365…
将八进制数转换为十进制
那么,让我们做相反的过程。 让我们将八进制数356, 243传递给十进制:
3 | 5 | 6 | , | 2 | 4 | 3 |
3·8 2 = 192 | 5·8 1 = 40 | 6·2 0 = 6 | 2·8 -1 = 0.25 | 4·8 -2 = 0.0625 | 3·8 -3 = 0.005893 |
结果是:192 + 40 + 6,0.25 + 0.0625 + 0.005893 = 238.318
十六进制与十进制之间的转换
然后,我们完成十六进制编号系统和十进制系统之间的转换过程。
将十进制数转换为十六进制
按照十进制二进制和十进制八进制方法的过程,我们将以238.32为例进行执行 :
整个部分。 我们除以16:
编号 | 238 | 14 |
师 | ÷16 = 14 | -- |
休息一下 | Ë | Ë |
小数部分,我们乘以基数,即16:
编号 | 0.32 | 0.12 | 0.92 | 0.72 | 0.52 | … |
乘法运算 | * 16 = 5.12 | * 16 = 1.92 | * 16 = 14.72 | * 16 = 11.52 | * 16 = 8.32 | … |
整个部分 | 5 | 1个 | Ë | 乙 | 8 | … |
获得的结果如下:238.32 = EE,51EB8…
将数字从十六进制转换为十进制
那么,让我们做相反的过程。 让我们将十六进制数字EE,51E传递给十进制:
Ë | Ë | , | 5 | 1个 | Ë |
E16 1 = 224 | E·16 0 = 14 | 5·16 -1 = 0.3125 | 1·16 -2 = 0.003906 | E16 -3 = 0.00341 |
结果是:224 + 14、0.3125 + 0.003906 + 0.00341 = 238.3198…
这些是将基数从一种编号系统更改为另一种编号系统的主要方法。 该系统适用于任何基数和十进制系统,尽管它们是计算领域中使用最多的系统。
您可能也有兴趣:
如有任何疑问,请在评论中保留。 我们会尽力为您服务。