二进制、八进制、十六进制与十进制的相互关系

二进制、八进制、十六进制与十进制的相互关系

一、二进制(逢二进一)

1、二进制正负数的判断

二进制数的最高位即符号位(左边的第一个数)若为1,则该数为负数,若最高位为0,则该数为正数。

2、原码、反码、补码及其之间的关系

  • 计算机内部的二进制数都是以补码储存的。

  • 正数的原码就是补码。

  • 反码即将原码的所有数取反,即1变0,0变1。

  • 负数原码(由十进制转二进制计算出来的数)与补码的关系:原码(保持符号位不变) -> 反码 -> 反码+1 -> 补码

    如将负数 1001 0111 变为补码:1001 0111 -> 1110 1000 -> 1110 1001

3、二进制与十进制的相互转换

  • 二进制转十进制:

    • 整数:若符号位为1,则应先将其变为原码。最低位(右边的第一个数)开始,每一位都乘以2n-1,再求和,最后根据符号位添加符号。如将二进制数01 0111转化为十进制数:01 0111=1*20+1*21+1*22+0*23+1*24=23
    • 小数:若符号位为1,则应先将其变为原码。整数与符号部分算法不变。小数部分:从小数点第一位开始,每一位都乘以2-n,如将二进制数01 0111.101转化为十进制数:01 0111.101=1*20+1*21+1*22+0*23+1*24+1*2-1+0*2-2+1*2-3=23.625
  • 十进制转二进制:

    • 整数:将数不断除以二,直到商为0,将所得的余数逆序排列,最后再根据正负号确定符号位,即为该数的二进制数,

    • 小数(一般规定精度):整数部分算法相同。小数部分:用2乘十进制小数,可以得到积,将积的整数部分取出,再用2乘余下的小数部分,又得到一个积,再将积的整数部分取出,如此进行,直到积中的小数部分为零,此时0或1为二进制的最后一位。或者达到所要求的精度为止。将整数部分正序排列,即为该小数的二进制数。

      例如:
      在这里插入图片描述

二、八进制(逢八进一)

1、八进制与二进制的相互转换

  • 二进制转八进制:由八进制的性质(逢八进一),将二进制数从最低位开始,每三位归为一组,将其转换为对应的十进制数,即为所求的八进制数。如:0111 0101 = 01 110 101 = 0165(数字0为八进制的前缀)
  • 八进制转二进制:将八进制的每一位数都拆成二进制数即可。如:0245 = 0010 0100 0101

2、八进制与十进制的相互转换

八进制转十进制:

  • 方法一:先将八进制数转为二进制数,最后再转为十进制数。
  • 方法二:同二进制转十进制的算法,最低位(右边的第一个数)开始,每一位都乘以8n-1,再求和。

十进制转八进制:

  • 方法一:先将数转为二进制,最后再转为八进制数。

  • 方法二:整数部分:基本算法不变,只是将上表中的除以2改为除以8。

    ​ 小数部分:基本算法不变,只是将上表中的乘以2改为乘以8。

三、十六进制(逢十六进一)

计数规则:十六进制的每一位取值范围为 0~15,为方便计算,将1数0~15分别记为ABCDEF。

1、十六进制与二进制的相互转换

  • 二进制转十六进制:将二进制数从最低位开始,每四位归为一组,将其转换为对应的十进制数,即为所求的十六进制数。

    如 0111 1111 0101 = 0x7F5(0x为十六进制的前缀)

  • 十六进制转二进制:将十六进制的每一位数都拆成二进制数即可。

2、十六进制与十进制的相互转换

十六进制转十进制:

  • 方法一:先将十六进制数转为二进制数,最后再转为十进制数。
  • 方法二:同二进制转十进制的算法,最低位(右边的第一个数)开始,每一位都乘以16n-1,再求和。

十进制转十六进制:

  • 方法一:先将数转为二进制,最后再转为16进制数。

  • 方法二:整数部分:基本算法不变,只是将上表中的除以2改为除以16。

    ​ 小数部分:基本算法不变,只是将上表中的乘以2改为乘以16。

  • 11
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 4
    评论
1. 二进制十进制:将二进制数从右往左每一位对应的权值分别为1、2、4、8、16、32……,将每一位的权值与该位的数值相乘,然后将所有乘积相加即得到对应的十进制数。 例如,二进制数1011转换为十进制数的计算过程为:1×2³ + 0×2² + 1×2¹ + 1×2⁰ = 8 + 0 + 2 + 1 = 11。 2. 十进制二进制:使用“除2取余”的方法,将十进制数不断除以2,将每次得到的余数倒序排列即为对应的二进制数。 例如,将十进制数27转换为二进制数的计算过程为:27 ÷ 2 = 13 余 1,13 ÷ 2 = 6 余 1,6 ÷ 2 = 3 余 0,3 ÷ 2 = 1 余 1,1 ÷ 2 = 0 余 1。将余数倒序排列,得到的二进制数为11011。 3. 二进制转八:将二进制数从右往左每三位分组,对每组二进制数分别赋予权值1、2、4,将每组二进制数的权值与数值相乘,然后将所有的乘积相加即得到对应的八数。 例如,二进制数1101101转换为八数的计算过程为:001 101 101,分别对应的权值为1、2、4,因此,得到的八数为155。 4. 八二进制:将八数的每一位转换为三位二进制数,然后将这些二进制数连接起来即可得到对应的二进制数。 例如,将八数155转换为二进制数的计算过程为:1对应的二进制数为001,5对应的二进制数为101,5对应的二进制数也为101,因此,得到的二进制数为1101101。 5. 二进制十六进制:将二进制数从右往左每四位分组,对每组二进制数分别赋予权值1、2、4、8,将每组二进制数的权值与数值相乘,然后将所有的乘积相加即得到对应的十六进制数。 例如,二进制数1101101转换为十六进制数的计算过程为:0110 1101,分别对应的权值为1、2、4、8和1、16,因此,得到的十六进制数为6D。 6. 十六进制二进制:将十六进制数的每一位转换为四位二进制数,然后将这些二进制数连接起来即可得到对应的二进制数。 例如,将十六进制数6D转换为二进制数的计算过程为:6对应的二进制数为0110,D对应的二进制数为1101,因此,得到的二进制数为01101101。

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Forward♞

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值