十进制与二进制的转换

        在讲进制之间的转换以前,先引入几个概念:原码、反码、补码。在计算正数的时候原码=反码=补码,因此我认为只要在计算负数时反码和补码的概念才有真正的意义。计算机中二进制的计算均是用补码计算的,咱们平时所说的二进制一般也是补码,须要注意二进制首位字符为符号位。如下是对这些概念的理解spa

原码:一个整数,转换成二进制数,称为原码;blog

如:①有一个整数,其数值为9,转换成二进制获得00001001,则其中原码为00001001;
递归

  ②有一个整数,其数值为-9,转换成二进制获得10001001,则其中原码为10001001;二进制

反码:将原码按位取反,获得的新的二进制数,称为反码;im

如:①正数的反码等于原码,则数值9的反码为00001001。margin

  ②将10001001符号位不变,其余数值按位取反,获得新的二进制数11110110,即为其反码,则数值-9的反码为11110110img

补码:反码加1,获得的二进制数,称为补码;计算机

如:①正数的补码等于原码,则数值9的补码为00001001。co

  ②二进制数值11110110加1,获得11110111,即为其补码,则数值-9的补码为11110110字符

1、十进制转二进制

    一、数值为正数时;

用该正数,递归除2,直到商等于0中止,倒序取余数,高位不足补0;

以十进制55为例:

    最终获得的二进制数为  11 0111 ,高位补0最终获得  0011 0111;

    二、数值为负数时;

以十进制-55为例:

  ① 取得该数值的绝对值为55,原码为0011 0111,则-55的原码 = -0011 0111 = 1011 0111

  ② 取 1011 0111 反码获得 1100 1000

  ③ 取 1100 1000 补码获得 1100 1001

则-55转换成的二进制数值为 1100 1001

2、二进制转十进制

       二进制数首位字符为符号位,0表示正,1表示负

    一、二进制数值首位为0

      二进制数值位数从后往前,依次计算第n位上数字乘以2的n-1次幂,所获得的和即为十进制数字;

      以 0011 0111 为例:

      1*2^0 + 1*2^1 + 1*2^2 + 0*2^3 + 1*2^4 + 1*2^5  =  1 + 2 + 4 + 16 + 32 = 55

      则最终的结果是55

     二、二进制数值首位为1

      二进制首位为1则表示次二进制数值为负数,根据十进制转二进制的规则逆推便可;

      以 1100 1001 为例:

        ① 1100 1001 减1 获得 1100 1000

        ② 取1100 1000 反码获得 1011 0111

        ③ 将1011 0111 转化成十进制为-55

      则最终获得结果为 -55

相关文章
相关标签/搜索