admin 管理员组

文章数量: 1086019


2024年12月21日发(作者:互战网)

---------------------------------------------------------------最新资料推荐------------------------------------------------------

(免费)二进,八进,十进,十六进制之间的转换算法

二进制, 八进制, 十进制, 十六进制之间的转换算法 一、 十

进制与二进制之间的转换 (1) 十进制转换为二进制, 分为整数

部分和小数部分 ① 整数部分 方法:

除 2 取余法, 即每次将整数部分除以 2, 余数为该位权上的

数, 而商继续除以 2, 余数又为上一个位权上的数, 这个步骤一

直持续下去, 直到商为 0 为止,最后读数时候, 从最后一个余数

读起, 一直到最前面的一个余数。

下面举例:

例:

将十进制的 168 转换为二进制 得出结果 将十进制的 168

转换为二进制, (10101000) 2 分析: 第一步, 将 168 除以 2,

商 84, 余数为 0。

第二步, 将商 84 除以 2, 商 42 余数为 0。

第三步, 将商 42 除以 2, 商 21 余数为 0。

第四步, 将商 21 除以 2, 商 10 余数为 1。

第五步, 将商 10 除以 2, 商 5 余数为 0。

第六步, 将商 5 除以 2, 商 2 余数为 1。

第七步, 将商 2 除以 2, 商 1 余数为 0。

第八步, 将商 1 除以 2, 商 0 余数为 1。

第九步, 读数, 因为最后一位是经过多次除以 2 才得到的,

1 / 8

因此它是最高位, 读数字从最后的余数向前读, 即 10101000 (2)

小数部分 方法:

乘 2 取整法, 即将小数部分乘以 2, 然后取整数部分, 剩下

的小数部分继续乘以 2, 然后取整数部分, 剩下的小数部分又乘以

2, 一直取到小数部分 为零为止。

如果永远不能为零, 就同十进制数的四舍五入一样, 按照要求

保留多少位小数时, 就根据后面一位是 0 还是 1, 取舍, 如果是

零, 舍掉, 如果是 1,向入一位。

换句话说就是 0 舍 1 入。

读数要从前面的整数读到后面的整数, 下面举例:

例 1:

将 0. 125 换算为二进制 得出结果:

将 0. 125 换算为二进制(0. 001) 2 分析:

第一步, 将 0. 125 乘以 2, 得 0. 25, 则整数部分为 0, 小

数部分为 0. 25; 第二步, 将小数部分 0. 25 乘以 2, 得 0. 5,

则整数部分为 0, 小数部分为 0. 5; 第三步, 将小数部分 0. 5

乘以 2, 得 1. 0, 则整数部分为 1, 小数部分为 0. 0; 第四步,

读数, 从第一位读起, 读到最后一位, 即为 0. 001。

例 2, 将 0. 45 转换为二进制(保留到小数点第四位)

大家从上面步骤可以看出, 当第五次做乘法时候, 得到的结果是 0.

4, 那么小数部分继续乘以 2, 得 0. 8, 0. 8 又乘以 2 的, 到

1. 6 这样一直乘下去, 最后不可能得到小数部分为零, 因此, 这

---------------------------------------------------------------最新资料推荐------------------------------------------------------

个时候只好学习十进制的方法进行四舍五入了,但是二进制只有 0

和 1 两个, 于是就出现 0 舍 1 入。

这个也是计算机在转换中会产生误差, 但是由于保留位数很多,

精度很高, 所以可以忽略不计。

那么, 我们可以得出结果将 0. 45 转换为二进制约等于 0.

0111 上面介绍的方法是十进制转换为为二进制的方法, 需要大家

注意的是:

1) 十进制转换为二进制, 需要分成整数和小数两个部分分

别转换 2) 当转换整数时, 用的除 2 取余法, 而转换小数时候,

用的是乘 2 取整法 3) 注意他们的读数方向 因此, 我们从上

面的方法, 我们可以得出十进制数 168. 125 转换为二进制为

10101000. 001, 或者十进制数转换为二进制数约等于 10101000.

0111。

(3) 二进制转换为十进制 不分整数和小数部分 方法:

按权相加法, 即将二进制每位上的数乘以权, 然后相加之和即

是十进制数。

例 将二进制数 101. 101 转换为十进制数。

得出结果:

(101. 101) 2=(5. 625) 10 大家在做二进制转换成十进制需

要注意的是 1) 要知道二进制每位的权值 2) 要能求出每位的

值 二、 二进制与八进制之间的转换 首先, 我们需要了解一

3 / 8

个数学关系, 即 23=8, 24=16, 而八进制和十六进制是用这 关

系衍生而来的, 即用三位二进制表示一位八进制, 用四位二进制表

示一位十六进制数。

接着, 记住 4 个数字 8、 4、 2、 1(23=8、 22=4、 21=2、

20=1) 。

现在我们来练习二进制与八进制之间的转换。

(1) 二进制转换为八进制 方法:

取三合一法, 即从二进制的小数点为分界点, 向左(向右) 每

三位取成一位, 接着将这三位二进制按权相加, 得到的数就是一位

八位二进制数, 然后, 按顺序进行排列, 小数点的位置不变, 得

到的数字就是我们所求的八进制数。

如果向左(向右) 取三位后, 取到最高(最低) 位时候, 如

果无法凑足三位, 可以在小数点最左边(最右边) , 即整数的最

高位(最低位) 添 0, 凑足三位。

例 ①将二进制数 101110. 101 转换为八进制 得到结果:

将 101110. 101 转换为八进制为 56. 5 ② 将二进制数 1101.

1 转换为八进制 得到结果:

将 1101. 1 转换为八进制为 15. 4 (2) 将八进制转换为

二进制 方法:

取一分三法, 即将一位八进制数分解成三位二进制数, 用三位

二进制按权相加去凑这位八进制数, 小数点位置照旧。

例:

---------------------------------------------------------------最新资料推荐------------------------------------------------------

① 将八进制数 67. 54 转换为二进制 因此, 将八进制数

67. 54 转换为二进制数为 110111. 101100, 即 110111. 1011 大

家从上面这道题可以看出, 计算八进制转换为二进制 首先, 将八

进制按照从左到右, 每位展开为三位, 小数点位置不变 然后, 按

每位展开为 22, 21, 20(即 4、 2、 1) 三位去做凑数, 即 a22+

b21 +c20=该位上的数(a=1 或者 a=0, b=1 或者 b=0, c=1 或者

c=0) , 将 abc 排列就是该位的二进制数 接着, 将每位上转换成

二进制数按顺序排列 最后, 就得到了八进制转换成二进制的数字。

以上的方法就是二进制与八进制的互换, 大家在做题的时候

需要注意的是 1) 他们之间的互换是以一位与三位转换, 这个有

别于二进制与十进制转换 2) 大家在做添 0 和去 0 的时候要注

意, 是在小数点最左边或者小数点的最右边(即整数的最高位和小

数的最低位) 才能添 0 或者去 0, 否则将产生错误 三、 二进

制与十六进制的转换 方法:

与二进制与八进制转换相似, 只不过是一位(十六) 与四位(二

进制) 的转换, 下面具体讲解 (1) 二进制转换为十六进制 方

法:

取四合一法, 即从二进制的小数点为分界点, 向左(向右) 每

四位取成一位, 接着将这四位二进制按权相加, 得到的数就是一位

十六位二进制数, 然后,按顺序进行排列, 小数点的位置不变, 得

到的数字就是我们所求的十六进制数。

5 / 8

如果向左(向右) 取四位后, 取到最高(最低) 位时候, 如

果无法凑足四位, 可以在小数点最左边(最右边) , 即整数的最

高位(最低位) 添 0, 凑足四位。

①例:

将二进制 11101001. 1011 转换为十六进制 得到结果:

将二进制 11101001. 1011 转换为十六进制为 E9. B ② 例:

将 101011. 101 转换为十六进制 因此得到结果:

将二进制 101011. 101 转换为十六进制为 2B. A (2) 将十

六进制转换为二进制 方法:

取一分四法, 即将一位十六进制数分解成四位二进制数, 用四

位二进制按权相加去凑这位十六进制数, 小数点位置照旧。

①将十六进制 6E. 2 转换为二进制数 因此得到结果:

将十六进制 6E. 2 转换为二进制为 01101110. 0010 即 110110.

001 四、 八进制与十六进制的转换 方法:

一般不能互相直接转换, 一般是将八进制(或十六进制) 转换

为二进制,然后再将二进制转换为十六进制(或八进制) , 小数点

位置不变。

那么相应的转换请参照上面二进制与八进制的转换和二进制与

十六进制的转 五、 八进制与十进制的转换 (1) 八进制转换

为十进制 方法:

按权相加法, 即将八进制每位上的数乘以位权, 然后相加之和

即是十进制数。

---------------------------------------------------------------最新资料推荐------------------------------------------------------

例:

①将八进制数 67. 35 转换为十进制 (2) 十进制转换为八

进制 十进制转换成八进制有两种方法:

1) 间接法:

先将十进制转换成二进制, 然后将二进制又转换成八进制 2)

直接法:

前面我们讲过, 八进制是由二进制衍生而来的, 因此我们可以

采用与十进制转换为二进制相类似的方法, 还是整数部分的转换和

小数部分的转换,下面来具体讲解一下:

①整数部分 方法:

除 8 取余法, 即每次将整数部分除以 8, 余数为该位权上的

数, 而商继续除以 8, 余数又为上一个位权上的数, 这个步骤一

直持续下去, 直到商为 0 为止,最后读数时候, 从最后一个余数

起, 一直到最前面的一个余数。

②小数部分 方法:

乘 8 取整法, 即将小数部分乘以 8, 然后取整数部分, 剩下

的小数部分继续乘以 8, 然后取整数部分, 剩下的小数部分又乘以

8, 一直取到小数部分为零为止。

如果永远不能为零, 就同十进制数的四舍五入一样, 暂取个名

字叫 3 舍 4入。

例:

7 / 8

将十进制数 796. 703125 转换为八进制数 解:

先将这个数字分为整数部分 796 和小数部分 0. 703125 整数

部分 小数部分 因此, 得到结果十进制 796. 703125 转换八进

制为 1434. 55 上面的方法大家可以验证一下, 你可以先将十进制

转换, 然后在转换为八进制,这样看得到的结果是否一样 六、 十

六进制与十进制的转换 十六进制与八进制有很多相似之处, 大家

可以参照上面八进制与十进制的转换自己试试这两个进制之间的转

换。


本文标签: 二进制 转换 八进制 部分 小数