Dzwebs.Net

撰写电脑技术杂文十余年

二进制与十进制数之间的整数部分、小数部分的相互转换

Admin | 2012-11-6 9:29:30 | 被阅次数 | 9212

温馨提示!

如果未能解决您的问题,请点击搜索;登陆可复制文章,点击登陆

  谈起二进制与十进制之间的相互转换,很多人都忘记其转换的算法了,因为现在都可以借助计算器来转换了。

  但是,有的时候,我们还得需要掌握必要的理论算法,方知其转换的来龙去脉。下面,就为你详细介绍,二进制数和十进制数的整数部分、小数部分的相互转换。

  ①二进制整数部分转十进制

  理论依据:从最后一位开始算(从右往左),依次列为第0、1、2...n位,即第n位的数(0或1)乘以2的n次方。

  比如:二进制数1101,从右往左数,1为0位,0为1位,1为2位,1为3位。

  因此,上述的二进制,转换为十进制,计算过程是这样的:

  1×20+0×21+1×22+1×23

  即1乘以2的零次方+0乘以2的1次方+1乘以2的零2次方+1乘以2的3次方等于13

  这个13就是十进制数。

  ②二进制小数部分转十进制

  关于小数部分,方法类似,从高位开始往低位算(从左往右),依次为1、2、3……m位,即第m位的数乘以2的负m次方。

  比如:0.1011这个二进制数,1为1位,0为2位,1为3位,1为4位。

  因此,上述的二进制小数,计算过程是这样的:

  1×2-1+0×2-2+1×2-3+1×2-4

  即1乘以2的负1次方+0乘以2的负2次方+1乘以2的负3次方+1乘以2的负4次方,其经过为:0.6875

  这个0.6875就是十进制数。

  ③十进制整数转二进制

  理论依据:用2辗转相除至结果为1,将余数和最后的1从下向上倒序写就是结果。

  将302转换成二进制的数。

  302/2 = 151 余0 (注意这个0将写在二进制数的最后面,即最右边,最低位嘛)
  151/2 = 75 余1
  75/2 = 37 余1
  37/2 = 18 余1
  18/2 = 9 余0
  9/2 = 4 余1
  4/2 = 2 余0
  2/2 = 1 余0 (注意这个1将写在二进制数的最前面,即最右边,最高位嘛)

  故302转换成二进制的数为100101110

  ④十进制小数转二进制

  对十进制小数乘2得到的整数部分和小数部分,整数部分既是相应的二进制数码,再用2乘小数部分(之前乘后得到新的小数部分),又得到整数和小数部分。

  如此不断重复,直到小数部分为0或达到精度要求为止.第一次所得到为最高位,最后一次得到为最低位

  如:0.25的二进制

  0.25*2=0.5 取整是0
  0.5*2=1.0    取整是1

  即0.25的二进制为 0.01 ( 第一次所得到为最高位,最后一次得到为最低位)

  0.8125的二进制

  0.8125*2=1.625   取整是1

  0.625*2=1.25     取整是1

  0.25*2=0.5       取整是0

  0.5*2=1.0        取整是1

  即0.8125的二进制是0.1101(第一次所得到为最高位,最后一次得到为最低位)


该杂文来自: 基础知识杂文

上一篇:什么是识图搜索、按图搜索

下一篇:理论算法:十六进制与十进制包含小数的相互转换

网站备案号:

网站备案号:滇ICP备11001339号-7

版权属性:

Copyright 2007-2021-forever Inc. all Rights Reserved.

联系方式:

Email:dzwebs@126.com QQ:83539231 访问统计