二进制和十进制之间的互相转换原理(正数,负数,小数)

目录

十进制转换为二进制

整数转二进制

正整数转换

负整数转换

小数转二进制

小数转换

整数加小数转换

转换无限循环

二进制转换为十进制

转10进制正整数

转10进制负整数

转10进制小数


十进制转换为二进制

十进制转二进制分为整数转二进制,和小数转二进制

整数转二进制

正整数转换

  • 采用"除2取余,逆序排列"法:
    • 首先用十进制整数除以2,得到一个商和余数
    • 然后再用得到的商除以2,又会得到一个商和余数
    • 重复操作,一直到商为小于1时为止
    • 然后将得到的所有余数全部排列起来,再将它反过来(逆序排列),一定要反过来!一定要反过来!一定要反过来!
  • 例如我们将52转为二进制,如下所示:
    • 52除以2等于为26,余数为0。
    • 26除以2等于为13,余数为0。
    • 13除以2等于为6,余数为1。
    • 6除以2等于为3,余数为0。
    • 3除以2等于为1,余数为1。
    • 1除以2等于为0,余数为1。
    • 余数按相反的顺序排列,整数52的二进制数值结果就是110100

负整数转换

十进制负数转换为二进制的方法为

  • 将十进制转换为二进制数。
  • 对该二进制数求反。
  • 再将该二进制数加1. 总之就是将十进制数转换为二进制数求补码即为结果。
  • 比如: -16
    • 第一步:16的十进制转为二进制结果为00010000
    • 第二步:求反:11101111
    • 第三步:加1等于11110000 所以-16的十进制转换为二进制为11110000

小数转二进制

  • 采用"乘2取整,顺序排列"法:
    • 用2乘十进制小数,可以得到积,将积的整数部分取出
    • 再用2乘余剩下的小数部分,又得到一个积,再将积的整数部分取出
    • 重复操作,直到积中的小数部分为零,此时0或1为二进制的最后一位,或者达到所要求的精度为止

小数转换

  • 例如将0.875转换为二进制:
    • 0.875乘以2等于1.75,取出整数部分1。
    • 0.75乘以2等于1.5,取出整数部分1。
    • 0.5乘以2等于1,取出整数部分1。
    • 0.875转换为二级制结果就是0.111

整数加小数转换

  • 如果小数的整数部分有大于0的整数时,将整数部分和小数部分先单独转为二进制,再合在一起就可以了
    • 例如:2.875
    • 2的二进制是10
    • 0.875的二级制是0.111
    • 合在一起就是10.111

转换无限循环

  • 需要的注意的10进制小数转换为二进制时会出现无限循环的情况,比如0.825转换为二进制就是0.1101001100110011001100110011001100110011001100110011无限循环的情况

二进制转换为十进制

转10进制正整数

二进制转为十进制要从右到左用二进制的每个数去乘以2的相应次方。

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

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

比如想二进制01101010转为十进制,因为以0开头,所以这是正整数,计算如下所示:

(0 * 2的零次方) + (1* 2的一次方)+ (0 * 2 的二次方)+(1 * 2的三次方) +(0 * 2的四次方) +(1* 2的五次方) + (1 * 2的六次方) + (0 * 2的7次方) = 0 + 2 + 0 + 8 + 0 + 32 + 64 + 0 = 105

转10进制负整数

二进制转为十进制要从右到左用二进制的每个数去乘以2的相应次方

比如11101011想转为负的十进制,因为最高位是1。

  • 先减1等于11101010
  • 取反00010101
  • 然后计算出00010101对应的十进制为21
  • 所以11101011最终对应的十进制为 -21。

转10进制小数

二进制转为十进制要从左到右用二进制的每个数去乘以2的相应次方。

比如0.11想转为负的十进制。

(1 * 2的负一次方) + (1* 2的负二次方) = 0.5 + 0.25 = 0.75

比如10.11想转为负的十进制。

整数部分(0 * 2的零次方) + (1* 2的一次方)= 0 + 2 = 2

小数部分(1 * 2的负一次方) + (1* 2的负二次方) = 0.5 + 0.25 = 0.75

合并为2.75, 所以二进制的10.11转为10进制为2.75

  • 1
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
### 回答1: 原码就是一个数字的二进制表示,反码就是将原码中的每一位取反,十进制转换二进制可以用除2取余的方法,二进制转换十进制可以用二进制的权重相加的方法。例如:十进制数10转换二进制数1010,其原码为1010,反码为1101,二进制数11.11转换十进制数为3.75,其原码为11.11,反码为00.00。 ### 回答2: 二进制数是计算机中最常用的数制系统,它由0和1两个数字组成。在进行二进制数的转换时,我们需要了解原码和反码的概念。 原码是二进制数的最基本表示形式,它是将十进制数直接转换二进制的形式。例如,十进制数6在二进制中的原码是110。 反码是原码的一种特殊形式,它的计算方法是对原码的每个位进行取反操作。也就是说,0变为1,1变为0。例如,原码110的反码是001。 对于整数的二进制数,如果最高位为1,表示该数为负数。为了能够表示负数,我们需要引入补码的概念。 补码是反码加1得到的结果。例如,原码110的反码是001,补码则是010。 对于小数二进制数,我们通常使用定点表示法。将小数点固定在某个位置,左边的部分表示整数位,右边的部分表示小数位。 在十进制二进制之间转换中,我们可以使用乘二取整法和除二取余法。 对于整数的转换,乘二取整法是将十进制数每次乘以2,然后将结果的整数部分作为二进制数的对应位。例如,十进制数13转换二进制是1101。 对于小数转换,除二取余法是将十进制数每次除以2,然后将结果的小数部分作为二进制数的对应位。例如,十进制数0.75转换二进制是0.11。 综上所述,二进制数的原码、反码和补码表示了整数在计算机中的存储方式,而定点表示法可以用来表示小数。通过乘二取整法和除二取余法,我们可以进行十进制二进制之间转换。 ### 回答3: 二进制数是一种使用两个数字0和1来表示数值的计数系统。在二进制数中,每个位上的数字称为比特或二进制位。二进制数可以分为整数和小数两种类型。 对于整数二进制数,原码表示法是最简单的表示方法。该方法直接将十进制数转化为二进制数,并在最高位添加一个符号位,0表示正数,1表示负数。例如,十进制数7在原码表示法中对应的二进制数为0111,-7对应的二进制数为1111。 反码是在原码基础上的变化,用于表示负数。反码的求解方法是将原码中的符号位保持不变,其他位按位取反。例如,十进制数7对应的反码为0111,-7对应的反码为1000。 在十进制二进制之间进行转换时,只需将每个位权上的数字进行乘法运算,并将结果相加。例如,十进制数13的二进制表示为1101,计算方法为1 * 2^3 + 1 * 2^2 + 0 * 2^1 + 1 * 2^0 = 8 + 4 + 0 + 1 = 13。同样地,二进制数1101的十进制表示为1 * 2^3 + 1 * 2^2 + 0 * 2^1 + 1 * 2^0 = 8 + 4 + 0 + 1 = 13。 对于小数二进制数,原码和反码的求解方法与整数相同。例如,十进制数0.5的二进制表示为0.1,计算方法是1 * 2^(-1) = 0.5。同样地,二进制数0.1的十进制表示为1 * 2^(-1) = 0.5。 综上所述,二进制数的原码、反码以及十进制二进制转换方法都是根据位权的乘法运算规则。无论是整数还是小数,通过对每个位进行权重计算并相加,可以准确地进行转换
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值