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 上面的方法大家可以验证一下, 你可以先将十进制
转换, 然后在转换为八进制,这样看得到的结果是否一样 六、 十
六进制与十进制的转换 十六进制与八进制有很多相似之处, 大家
可以参照上面八进制与十进制的转换自己试试这两个进制之间的转
换。
版权声明:本文标题:(免费)二进,八进,十进,十六进制之间的转换算法 内容由网友自发贡献,该文观点仅代表作者本人, 转载请联系作者并注明出处:http://www.roclinux.cn/p/1734877574a1603351.html, 本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容,一经查实,本站将立刻删除。
发表评论