数字电路 - 基本转换
在前面的章节中,我们已经了解了四种著名的数字系统。在本章中,让我们将数字从一种数字系统转换为另一种数字系统,以便找到等效值。
十进制数到其他进制的转换
如果小数同时包含整数部分和小数部分,则将小数部分分别转换为其他基数。按照以下步骤将十进制数转换为任何基数“r”的等效数。
将十进制数的整数部分和连续商以基数“r”相除,并记下余数,直到商为零。以相反的顺序考虑余数以获得基数“r”的等效数的整数部分。这意味着,第一个和最后一个余数分别表示最低有效数字和最高有效数字。
将小数的小数部分和连续分数与基数“r”相乘,并记下进位,直到结果为零或获得所需的等效位数。考虑正常的进位序列,以获得基数“r”的等效数的小数部分。
十进制到二进制转换
将十进制数转换为其等效的二进制数时,会发生以下两种类型的运算。
- 整数部分和以 2 为底的连续商的除法。
- 小数部分和连续分数以 2 为底的乘法。
例子
考虑十进制数 58.25。这里,整数部分是58,小数部分是0.25。
步骤 1 - 58 和以 2 为底的连续商相除。
手术 | 商 | 余 |
---|---|---|
58/2 | 29 | 0(最低有效位) |
29/2 | 14 | 1 |
14/2 | 7 | 0 |
7/2 | 3 | 1 |
3/2 | 1 | 1 |
1/2 | 0 | 1(最高有效位) |
⇒(58) 10 = (111010) 2
因此,等效二进制数的整数部分为111010。
步骤 2 - 0.25 和连续分数与底数 2 相乘。
手术 | 结果 | 携带 |
---|---|---|
0.25×2 | 0.5 | 0 |
0.5×2 | 1.0 | 1 |
- | 0.0 | - |
⇒(.25) 10 = (.01) 2
因此,等效二进制数的小数部分为.01
⇒(58.25) 10 = (111010.01) 2
因此,十进制数 58.25 的二进制等效值为111010.01。
十进制到八进制转换
将十进制数转换为其等效的八进制数时,会发生以下两种类型的运算。
整数部分和以 8 为底的连续商的除法。
小数部分和连续分数以 8 为底的乘法。
例子
考虑十进制数 58.25。这里,整数部分是58,小数部分是0.25。
步骤 1 - 58 和以 8 为底的连续商相除。
手术 | 商 | 余 |
---|---|---|
58/8 | 7 | 2 |
7/8 | 0 | 7 |
⇒(58) 10 = (72) 8
因此,等效八进制数的整数部分是72。
步骤 2 - 0.25 和以 8 为底的连续分数相乘。
手术 | 结果 | 携带 |
---|---|---|
0.25×8 | 2.00 | 2 |
- | 0.00 | - |
⇒ (.25) 10 = (.2) 8
因此,等效八进制数的小数部分为 .2
⇒ (58.25) 10 = (72.2) 8
因此,十进制数 58.25 的八进制等效值为72.2。
十进制到十六进制转换
将十进制数转换为其等效的十六进制数时,会发生以下两种类型的运算。
- 整数部分和以 16 为底的连续商的除法。
- 小数部分和连续分数以 16 为底的乘法。
例子
考虑十进制数 58.25。这里,整数部分是58,小数部分是0.25。
步骤 1 - 58 和以 16 为底的连续商相除。
手术 | 商 | 余 |
---|---|---|
58/16 | 3 | 10=一个 |
3/16 | 0 | 3 |
⇒ (58) 10 = (3A) 16
因此,等效的十六进制数的整数部分是3A。
步骤 2 - 0.25 和以 16 为底的连续分数相乘。
手术 | 结果 | 携带 |
---|---|---|
0.25×16 | 4.00 | 4 |
- | 0.00 | - |
⇒(.25) 10 = (.4) 16
因此,等效的十六进制数的小数部分为 0.4。
⇒(58.25) 10 = (3A.4) 16
因此,十进制数 58.25 的十六进制等效值为3A.4。
二进制数到其他进制的转换
将数字从二进制转换为十进制的过程与将二进制数转换为其他基数的过程不同。现在我们就来一一讨论一下二进制数到十进制、八进制和十六进制的转换。
二进制到十进制转换
要将二进制数转换为其等效的十进制数,首先将二进制数的位与各自的位置权重相乘,然后将所有这些乘积相加。
例子
考虑二进制数 1101.11。
从数学上来说,我们可以将其写为
(1101.11) 2 = (1 × 2 3 ) + (1 × 2 2 ) + (0 × 2 1 ) + (1 × 2 0 ) + (1 × 2 -1 ) +
(1 × 2 -2 )
⇒ (1101.11) 2 = 8 + 4 + 0 + 1 + 0.5 + 0.25 = 13.75
⇒ (1101.11) 2 = (13.75) 10
因此,二进制数 1101.11 的十进制等效值为13.75。
二进制到八进制转换
我们知道二进制和八进制的基数分别是2和8。三位二进制数相当于一位八进制数,因为 2 3 = 8。
按照以下两个步骤将二进制数转换为其等效的八进制数。
从二进制小数点开始,将二进制小数点两边各3位组成一组。如果在组成 3 位组时少了一位或两位,则在最边包括所需数量的零。
写入每组 3 位对应的八进制数字。
例子
考虑二进制数 101110.01101。
步骤 1 - 在二进制小数点两侧创建 3 位组。
101 110.011 01
这里,在二进制小数点的右侧,最后一组只有 2 位。因此,在最末端包含一个零,以使其成为 3 位组。
⇒ 101 110.011 010
步骤 2 - 写入每组 3 位对应的八进制数字。
⇒ (101 110.011 010) 2 = (56.32) 8
因此,二进制数 101110.01101 的八进制等效值为56.32。
二进制到十六进制转换
我们知道二进制和十六进制的基数分别是2和16。四位二进制数相当于一位十六进制数字,因为 2 4 = 16。
按照以下两个步骤将二进制数转换为其等效的十六进制数。
从二进制小数点开始,将二进制小数点两边各4位组成一组。如果在组成 4 位组时某些位较少,则在最边包括所需数量的零。
写入每组 4 位对应的十六进制数字。
例子
考虑二进制数 101110.01101
步骤 1 - 在二进制小数点两侧创建 4 位组。
10 1110.0110 1
这里,第一组只有 2 位。因此,在最末端包含两个零,以使其成为 4 位组。类似地,在最末端包含三个零,以使最后一组也作为 4 位组。
⇒ 0010 1110.0110 1000
步骤 2 - 写入每组 4 位对应的十六进制数字。
⇒ (0010 1110.0110 1000) 2 = (2E.68) 16
因此,二进制数 101110.01101 的十六进制等效值为(2E.68)。
八进制数到其他进制的转换
将数字从八进制转换为十进制的过程与将八进制数转换为其他基数的过程不同。现在,我们就来一一讨论八进制到十进制、二进制和十六进制的转换。
八进制到十进制转换
要将八进制数转换为其等效的十进制数,首先将八进制数的数字与相应的位置权重相乘,然后将所有这些乘积相加。
例子
考虑八进制数 145.23。
从数学上来说,我们可以将其写为
(145.23) 8 = (1 × 8 2 ) + (4 × 8 1 ) + (5 × 8 0 ) + (2 × 8 -1 ) + (3 × 8 -2 )
⇒ (145.23) 8 = 64 + 32 + 5 + 0.25 + 0.05 = 101.3
⇒ (145.23) 8 = (101.3) 10
因此,八进制数 145.23 的十进制等效值为101.3。
八进制到二进制转换
将八进制数转换为等效的二进制数的过程与二进制到八进制转换的过程正好相反。通过用 3 位来表示每个八进制数字,我们将得到等效的二进制数。
例子
考虑八进制数 145.23。
每个八进制数字用 3 位表示。
(145.23) 8 = (001 100 101.010 011) 2
该值不会因删除最极端的零而改变。
⇒ (145.23) 8 = (1100101.010011) 2
因此,八进制数 145.23 的二进制等效值为 1100101.010011。
八进制到十六进制转换
按照以下两个步骤将八进制数转换为其等效的十六进制数。
- 将八进制数转换为其等效的二进制数。
- 将上述二进制数转换为其等效的十六进制数。
例子
考虑八进制数 145.23
在前面的示例中,我们得到八进制数 145.23 的二进制等效值 1100101.010011。
按照二进制到十六进制转换的过程,我们可以得到
(1100101.010011) 2 = (65.4C)16
⇒(145.23) 8 = (65.4C) 16
因此,八进制数 145.23 的十六进制等效值为65.4 C。
十六进制数到其他进制的转换
将数字从十六进制转换为十进制的过程与将十六进制数字转换为其他基数的过程不同。下面我们就来一一讨论一下十六进制数到十进制、二进制和八进制的转换。
十六进制到十进制转换
要将十六进制数转换为其等效的十进制数,首先将十六进制数的各位乘以各自的位置权重,然后将所有乘积相加。
例子
考虑十六进制数 1A5.2
从数学上来说,我们可以将其写为
(1A5.2) 16 = (1 × 16 2 ) + (10 × 16 1 ) + (5 × 16 0 ) + (2 × 16 -1 )
⇒ (1A5.2) 16 = 256 + 160 + 5 + 0.125 = 421.125
⇒ (1A5.2) 16 = (421.125) 10
因此,十六进制数 1A5.2 的十进制等效值是 421.125。
十六进制到二进制转换
将十六进制数转换为其等效的二进制数的过程与二进制到十六进制转换的过程正好相反。通过用 4 位来表示每个十六进制数字,我们将得到等效的二进制数。
例子
考虑十六进制数 65.4C
用 4 位表示每个十六进制数字。
(65.4℃) 6 = (0110 0101.0100 1100) 2
删除位于两端的零不会改变该值。
⇒ (65.4C) 16 = (1100101.010011) 2
因此,十六进制数 65.4C 的二进制等效值为1100101.010011。
十六进制到八进制转换
按照以下两个步骤将十六进制数转换为其等效的八进制数。
- 将十六进制数转换为其等效的二进制数。
- 将上面的二进制数转换为其等效的八进制数。
例子
考虑十六进制数 65.4C
在前面的示例中,我们得到了十六进制数 65.4C 的二进制等效值 1100101.010011。
按照二进制到八进制的转换过程,我们将得到
(1100101.010011) 2 = (145.23) 8
⇒(65.4C) 16 = (145.23)