(免费)二进,八进,十进,十六进制之间的转换算法
二进制, 八进制, 十进制, 十六进制之间的转换算法 一、 十进制与二进制之间的转换 (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 才得到的, 因此它是最高位, 读数字从最后的余数向前读, 即 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) 要能求出每位的值 二、 二进制与八进制之间的转换 首先, 我们需要了解一个数学关系, 即 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) 二进制转换为十六进制 方法:
取四合一法, 即从二进制的小数点为分界点, 向左(向右) 每四位取成一位, 接着将这四位二进制按权相加, 得到的数就是一位十六位二进制数, 然后,按顺序进行排列, 小数点的位置不变, 得到的数字就是我们所求的十六进制数。
如果向左(向右) 取四位后, 取到最高(最低) 位时候, 如果无法凑足四位, 可以在小数点最左边(最右边) , 即整数的最高位(最低位) 添 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 为止,最后读数时候, 从最后一个余数起, 一直到最前面的一个余数。
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论