进制转换:二进制、八进制、十六进制、十进制之间的转换 |
您所在的位置:网站首页 › 1100101转16进制 › 进制转换:二进制、八进制、十六进制、十进制之间的转换 |
上一节我们已经讲解了四个常见的数字系统,本节我们将讲解如何把一个数字系统转换成另一个数字系统。
十进制转换成其它进制
整数部分和小数部分的转换算法不同,如果一个十进制数包含了整数部分和小数部分,那么整数部分和小数部分要分开进行转换。按照以下算法,可以将一个十进制数转换成 r 进制数(基数为 r 的数字系统)。
整数部分的转换
用十进制数的整数部分除以基数 r,得到商和余数,记下余数(第一个余数);
用得到的商继续除以基数 r,再次得到商和余数,记下余数;
重复步骤 2,不断用上次得到的商除以基数 r,直到商为零,记下余数(最后一个余数)。
将记下的所有余数按照从后往前的顺序排列起来,就得到了 r 进制数的整数部分。注意,这是一个逆序排列,最后一个余数在最左边,表示 r 进制整数的最高位,第一个余数在最右边,表示 r 进制整数的最低位。
小数部分的转换
用十进制数的小数部分乘以基数 r,得到一个积,取出积的整数部分(第一个整数);
用剩下的小数部分继续乘以基数 r,又得到一个积,取出积的整数部分;
重复步骤 2,不断用上次得到的积的小数部分乘以基数 r,直到积的小数部分为零,取出积的整数部分(最后一个整数)。
将取出的所有积的整数部分按照从前往后的顺序排列起来,就得到了 r 进制数的小数部分。注意,这是一个正序排列,第一个整数部分在最左边,表示 r 进制小数的最高位,最后一个整数部分在最右边,表示 r 进制小数的最低位。
将上面得到的 r 进制的整数部分和小数部分合并在一起,就得到了整个 r 进制数。
总结:整数部分的转换就是不断作除法运算,把得到的所有余数逆序排列起来;小数部分的转换就是不断作乘法运算,把得到的所有积的整数部分正序排列起来。
十进制数转换成二进制数
十进制数转换成二进制数的过程可以分成以下两步:
整数部分不断除以基数 2,直到商为零,把得到的余数逆序排列起来;
小数部分不断乘以基数 2,直到积的小数部分为零,把得到的积的整数部分正序排列起来。
例子
以 58.125 为例,它的整数部分是 58,小数部分是 0.125。
1) 整数部分的转换:
除法
商
余数
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
2) 小数部分的转换
乘法
积
整数部分
0.125 x 2
0.25
0(最高位)
0.25 x 2
0.5
0
0.5 × 2
1.0
1(最低位)
⇒ (.125)10 = (.001)2
将整数部分和小数部分合并起来,得到二进制数字 111010.001,也即:
(58.125)10 = (111010.001)2 十进制转换成八进制 十进制数转换成八进制数的过程可以分成以下两步: 整数部分不断除以基数 8,直到商为零,把得到的余数逆序排列起来; 小数部分不断乘以基数 8,直到积的小数部分为零,把得到的积的整数部分正序排列起来。 例子 以 1508.3125 为例,它的整数部分是 1508,小数部分是 0.3125。 1) 整数部分的转换: 除法 商 余数 1508/8 188 4 (最低位) 188/8 23 4 23/8 2 7 2/8 0 2(最高位) ⇒ (1508)10 = (2744)8 2) 小数部分的转换 乘法 积 整数部分 0.3125 x 8 2.5 2(最高位) 0.5 x 8 4.0 4(最低位) ⇒ (.3125)10 = (.24)8 将整数部分和小数部分合并起来,得到八进制数字 2744.24,也即:(1508.3125)10 = (2744.24)8 十进制转换成十六进制 十进制数转换成十六进制数的过程可以分成以下两步: 整数部分不断除以基数 16,直到商为零,把得到的余数逆序排列起来; 小数部分不断乘以基数 16,直到积的小数部分为零,把得到的积的整数部分正序排列起来。 例子 以 691780.548828125 为例,它的整数部分是 691780,小数部分是 0.548828125。 1) 整数部分的转换: 除法 商 余数 691780/16 43236 4 (最低位) 43236/16 2702 4 2702/16 168 E 168/16 10 8 10/16 0 A(最高位) ⇒ (691780)10 = (A8E44)8 2) 小数部分的转换 乘法 积 整数部分 0.548828125 x 16 8.78125 8(最高位) 0.78125 x 16 12.5 C 0.5 x 16 8.0 8(最低位) ⇒ (.548828125)10 = (.8C8)16 将整数部分和小数部分合并起来,得到八进制数字 A8E44.8C8,也即:(691780.548828125)10 = (A8E44.8C8)16 其它进制转换成十进制 任何一种进制转换成十进制的算法都是一样的,就是“按权相加”。将 r 进制转换成十进制可以分以下两步进行: 将每一位的数码乘以该位的权重; 把得到的所有积相加。 将二进制转换成十进制 以二进制数字 1101.101 为例,它在数学上可以写作:(1101.101)2 = (1 × 23) + (1 × 22) + (0 × 21) + (1 × 20) + (1 × 2-1) + (0 × 2-2) + (1 × 2-3) ⇒ (1101.11)2 = 8 + 4 + 0 + 1 + 0.5 + 0 + 0.125 = 13.625 ⇒ (1101.11)2 = (13.625)10 所以,二进制 1101.101 转换成十进制的结果是 13.625。 将八进制转换成十进制 以八进制数字 145.23 为例,它在数学上可以写作:(145.23)8 = (1 × 82) + (4 × 81) + (5 × 80) + (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。 将十六进制转换成十进制 以十六进制数字 1A5.2C 为例,它在数学上可以写作:(1A5.2C)16 = (1 × 162) + (10 × 161) + (5 × 160) + (2 × 16-1) + (12 × 16-2) ⇒ (1A5.2C)16 = 256 + 160 + 5 + 0.125 + 0.046875 = 421.171875 ⇒ (1A5.2C)16 = (421.171875)10 所以,十六进制 1A5.2C 转换成十进制的结果为 421.171875。 二进制、八进制、十六进制之间的转换 这几种数字系统的基数存在次方的关系,转换起来非常简单。 二进制转换成八进制 二进制数的基数是 2,八进制数的基数是 8,因为23 = 8,所以每三位二进制数可以转换成一位八进制数。 将二进制数转换成八进制数的步骤为: 对二进制数进行划分,每三位为一组,整数部分从右往左进行划分,小数部分从左往右进行划分。 不足三位时,整数部分高位用 0 补齐,小数部分低位用 0 补齐。 按照从左往右的顺序,依次写出每组二进制数对应的八进制数。 每组二进制数都有八种不同的组合,分别对应不同的八进制数字,如下所示: 000 = 0 001 = 1 010 = 2 011 = 3 100 = 4 101 = 5 110 = 6 111 = 7 例子 把二进制数 101110.01101 转换成八进制数:(101110.01101)2 = (101) (110) . (011) (01)2 ⇒ (101110.01101)2 = (101) (110) . (011) (010)2 ⇒ (101110.01101)2 = (56.32)8 所以,二进制数 101110.01101 转换成八进制的结果为 56.32。 二进制转换成十六进制 这个过程和「二进制转换成八进制」的过程类似。二进制数的基数是 2,十六进制数的基数是 16,因为24 = 16,所以每四位二进制数可以转换成一位十六进制数。 将二进制数转换成十六进制数的步骤为: 对二进制数进行划分,每四位为一组,整数部分从右往左进行划分,小数部分从左往右进行划分。 不足四位时,整数部分高位用 0 补齐,小数部分低位用 0 补齐。 按照从左往右的顺序,依次写出每组二进制数对应的十六进制数。 每组二进制数都有十六种不同的组合,分别对应不同的十六进制数字,如下所示: 0000 = 0 0001 = 1 0010 = 2 0011 = 3 0100 = 4 0101 = 5 0110 = 6 0111 = 7 1000 = 8 1001 = 9 1010 = A 1011 = B 1100 = C 1101 = D 1110 = E 1111 = F 例子 把二进制数 101110.01101 转换成十六进制数:(101110.01101)2 = (10) (1110) . (0110) (1)2 ⇒ (101110.01101)2 = (0010) (1110) . (0110) (1000)2 ⇒ (101110.01101)2 = (2D.68)16 所以,二进制数 101110.01101 转换成十六进制的结果为 2D.68。 八进制转换成二进制 这是一个和「二进制转换成八进制」相反的过程,具体步骤为: 将八进制数字的每一位分别转换成一组三位的二进制数字。 按照从左往右的顺序,依次写出每组二进制数字。 整数部分最高位的 0 和小数部分最低位的 0 是多余的,直接去掉。 例子 把八进制数 145.23 转换成二进制数:(145.23)8 = (001) (100) (101) . (010) (011)2 ⇒(145.23)8 = (1100101.010011)2 所以,八进制数字 145.23 转换成二进制的结果为 1100101.010011。 十六进制转换成二进制 这是一个和「二进制转换成十六进制」相反的过程,具体步骤为: 将十六进制数字的每一位分别转换成一组四位的二进制数字。 按照从左往右的顺序,依次写出每组二进制数字。 整数部分最高位的 0 和小数部分最低位的 0 是多余的,直接去掉。 例子 把十六进制数 65.4C 转换成二进制数:(65.4C)16 = (0110) (0101) . (0100) (1100)2 ⇒(65.4C)16 = (1100101.010011)2 所以,十六进制数 65.4C 转换成二进制的结果为 1100101.010011。 八进制转换成十六进制 先将八进制数转换成二进制数,再将二进制数转换成十六进制数。 例子 把八进制数 145.23 转换成十六进制数。 1) 先转换成二进制数:(145.23)8 = (001) (100) (101) . (010) (011)2 ⇒ (145.23)8 = (1100101.010011)2 2) 把得到的二进制数转换成十六进制数:(1100101.010011)2 = (110) (0101) . (0100) (11)2 ⇒ (1100101.010011)2 = (0110) (0101) . (0100) (1100)2 ⇒ (1100101.010011)2 = (65.4C)16 所以,八进制数 145.23 转换成十六进制的结果为 65.4C。 十六进制转换成八进制 先将十六进制数转换成二进制数,再将二进制数转换成八进制数。 例子 把十六进制数 65.4C 转换成八进制数。 1) 先转换成二进制数:(65.4C)16 = (0110) (0101) . (0100) (1100)2 ⇒ (65.4C)16 = (1100101.010011)2 2) 把得到的二进制数转换成八进制数:(1100101.010011)2 = (1) (100) (101) . (010) (011)2 ⇒ (1100101.010011)2 = (001) (100) (101) . (010) (011)2 ⇒ (1100101.010011)2 = (145.23)8 所以,十六进制数 65.4C 转换成八进制的结果为 145.23。 |
今日新闻 |
推荐新闻 |
CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3 |