进制转换 二进制、十进制、八进制、十六进制相互转换

进制转换 二进制、十进制、八进制、十六进制相互转换

进制介绍

一、二进制
  • 二进制(binary)是在数学和数字电路中指以2为基数的记数系统,是以2为基数代表系统的二进位制。
  • 用两个不同的符号0(代表零)和1(代表一)来表示,逢二近1。
  • 数字电子电路中,逻辑门的实现直接应用了二进制,因此现代的计算机和依赖计算机的设备里都用到二进制。每个数字称为一个比特(Bit,Binary digit的缩写)
二、八进制
  • 八进制,Octal,缩写OCT或O,一种以8为基数的计数法,采用0,1,2,3,4,5,6,7八个数字,逢八进1。
  • 一些编程语言中常常以数字0开始表明该数字是八进制。
  • 八进制的数和二进制数可以按位对应(八进制一位对应二进制三位),因此常应用在计算机语言中。
三、十进制
  • 十进制数是组成以10为基础的数字系统,有0,1,2,3, 4, 5, 6, 7, 8, 9十个基本数字组成。
四、十六进制
  • 在数学中是一种逢16进1的进位制。
  • 一般用数字0到9和字母A到F(或af)表示,其中:AF表示10~15,这些称作十六进制数字。

进制转换

一、二进制转十进制
  • 二进制转为十进制要从右到左用二进制的每个数去乘以2的相应次方,小数点后则是从左往右。

  • 如果首位是0就表示正整数,如果首位是1则表示负整数,正整数可以直接换算,负整数则需要先取反再换算。

  • 因为计算机内部表示数的字节单位是定长的。如8位、16位、32位。所以位数不够时,高位补零。

    实例一:二进制00101010转为十进制
    = (0 * 2的零次方) 
    + (1* 2的一次方)
    + (0 * 2 的二次方)
    + (1 * 2的三次方) 
    + (0 * 2的四次方) 
    + (1* 2的五次方) 
    +  (0 * 2的六次方) 
    +  (0 * 2的7次方) 
    =  0 + 2 + 0 + 8 + 0 + 32 + 0 + 0 = 42
    

    在这里插入图片描述

    实例二:二进制11101011想转为*负的十进制
    如果11101011想转为*负的十进制,
    因为最高位是1,所以先减一取反 00010101,
    
    然后计算出00010101对应的十进制为21,
    
    所以11101011最终对应的十进制为 -21
    
二、十进制转二进制
  • 采用"除2取余,逆序排列"法:

    1. 首先用2整除一个十进制整数,得到一个商和余数
    2. 然后再用2去除得到的商,又会得到一个商和余数
    3. 重复操作,一直到商为小于1时为止
    4. 然后将得到的所有余数全部排列起来,再将它反过来(逆序排列),切记一定要反过来!
  • 假设我们现在需要将42转为二进制
    在这里插入图片描述

    小数转二进制
    • 采用"乘2取整,顺序排列"法:
      1. 用2乘十进制小数,可以得到积,将积的整数部分取出
      2. 再用2乘余下的小数部分,又得到一个积,再将积的整数部分取出
      3. 重复操作,直到积中的小数部分为零,此时0或1为二进制的最后一位,或者达到所要求的精度为止
    • 例如将0.125转换为二进制
        0.125  *  2  =  0.25 ------0
    
        0.25   *  2  =  0.5   ------0
    
        0.5  *  2  =  1.0     ------1
    
        当小数部分为0就可以停止乘2了,然后正序排序就构成了二进制的小数部分:0.001
    
三、二进制与八进制转换

二进制转换成八进制及八进制转换成二进制,要比二进制与十进制之间的转换简单一些。首先,我们来看一下数学关系即23=8,即用三位二进制表示一位八进制。现在我们来看二进制与八进制之间的转换。

二进制转八进制
  • 二进制数与八进制数之间的对应关系

  • 二进制转换成八进制的方法是,取三合一法,即从二进制的小数点为分界点,向左(或向右)每三位取成一位.

  • 对照二进制与八进制数的对应表,将三位二进制按权相加,得到的数就是一位八进制数,然后按顺序排列,小数点的位置不变,最后得到的就是八进制数

  • 在向左(或向右)取三位时,取到最高位(最低位)如果无法凑足三位,就可以在小数点的最左边(或最右边)补0

八进制转二进制
  • 一分三,即一个八进制数分成三个二进制数,用三位二进制按权相加,最后得到二进制,小数点依旧

四、二进制与十六进制转换
  • 二进制与十六进制之间的转换与二进制和八进制之间的转换很类似。
  • 四位二进制表示一位十六进制。
  • 转换方法与二进制转八进制方案相同,就不写详细例子了。
五、八进制和十进制之间相互换
八进制换成十进制
  • 八进制数按权展开、相加即可得十进制数,也就是让八进制各位上的系数乘以对应的权,然后求其和
  • 八进制156.48转十进制:
    156.48 = 1×8^2 + 5×8^1 + 6×8^0 + 4×8^-1 = 110.5
    整数:156 = 1×8^2 + 5×8^1 + 6×8^0
    小数:0.4 = 4×8^-1
    
  • 八进制92.65转成十进制
    在这里插入图片描述
十进制转八进制
  • 间接法:十进制转二进制,二进制转八进制。

  • 直接发:八进制是由二进制衍生而来的,因此我们可以采用与十进制转换为二进制相类似的方法,分为整数部分的转换和小数部分的转换

    1.整数部分方法:除8取余法,即每次将整数部分除以8,余数为该位权上的数,而商继续除以8,余数又为上一个位权上的数,这个步骤一直持续下去,直到商为0为止,最后读数时候,从最后一个余数起,一直到最前面的一个余数
    2.小数部分方法:乘8取整法,即将小数部分乘以8,然后取整数部分,剩下的小数部分继续乘以8,然后取整数部分,剩下的小数部分又乘以8,一直取到小数部分为零为止。如果永远不能为零,就同十进制数的四舍五入一样,暂取个名字叫3舍4入

  • 将八进制72.45转换为十进制
    在这里插入图片描述

六、十进制与十六进制相互转换
  • 间接法:转二进制,再转十六进制
  • 直接发:与十进制转八进制类似,不想写例子了。
  • 2
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值