进制转换

一:十进制与二进制之间的转换

1.整数部分:
            例:将十进制的168转换为二进制(结果:10101000)
            第一步,将168除以2,商84,余数为0。
            第二步,将商84除以2,商42余数为0。
            第三步,将商42除以2,商21余数为0。
            第四步,将商21除以2,商10余数为1。
            第五步,将商10除以2,商5余数为0。
            第六步,将商5除以2,商2余数为1。
            第七步,将商2除以2,商1余数为0。
            第八步,将商1除以2,商0余数为1。
            第九步,读数,因为最后一位是经过多次除以2才得到的,因此它是最高位,读数字从最后的余数向前读,即10101000
            2.小数部分
            例1:将0.45转换为二进制(结果:0.01110011000.45x2=0.9 取整0,小数部分是0.9
            0.9x2=1.8 取整1,小数部分是0.8
            0.8x2=1.6 取整1,小数部分是0.6
            0.6x2=1.2 取整1,小数部分是0.2
            0.2x2=0.4 取整0,小数部分是0.4
            0.4x2=0.8 取整0,小数部分是0.8,循环
            所以0.45的二进制是0.0111001100
            3. 二进制转换为十进制 不分整数和小数部分
            例1:将101.101转换为十进制(结果:5.625101.101
            =1*2^2+0*2^1+1*2^0+1*2^(-1)+0*2^(-2)+1*2^(-3)
            =4+0+1+1/2+0+1/8
      =5.625

二:二进制与八进制之间的转换

1、(1) 二进制转换为八进制
方法:取三合一法,即从二进制的小数点为分界点,向左(向右)每三位取成一位,接着将这三位二进制按权相加,得到的数就是一位八位二进制数,然后,按顺序进行排列,小数点的位置不变,得到的数字就是我们所求的八进制数。如果向左(向右)取三位后,取到最高(最低)位时候,如果无法凑足三位,可以在小数点最左边(最右边),即整数的最高位(最低位)添0,凑足三位。
例1.将二进制数101110.101转换为八进制(结果56.5)

二进制转换成八进制是从小数点往左或右三个一看,若不够3个整数部分最前面以0补齐,小数点部分在最后补0(就像100如果要用四位数表示还不能影响数值0100),
1106110 = 1 * 2^2(12*2次方) + 1 * 2^1(12*1次方) + 0 * 2^0(02*0次方) = 6,
1015101 = 1 * 2^2 + 0 * 2^1 + 1 * 2^0 = 51015。
例如:1101.1转换为八进制(结果:15.4)
小数点左三位数 101,第一个1001替补,最后一个1100替补
001 = 02*2次方 + 02*1次方 + 12*0次方 = 0+0+1 = 1101 = 12*2次方 + 02*1次方 + 12*0次方 = 4+0+1 = 5100 = 12*2次方 + 02*1次方 + 02*0次方 = 4+0+0 = 4。
所以答案是56.5
2、(2) 将八进制转换为二进制
方法:取一分三法,即将一位八进制数分解成三位二进制数,用三位二进制按权相加去凑这位八进制数,小数点位置照旧
例:1.将八进制数67.54转换为二进制
6 = 1107=1115=101,4=100
so: 
67.54 = 110111.101100 四舍五入= 110111.1011

三、 二进制与十六进制的转换

1) 二进制转换为十六进制
方法:取四合一法,即从二进制的小数点为分界点,向左(向右)每四位取成一位,接着将这四位二进制按权相加,得到的数就是一位十六位二进制数,然后,按顺序进行排列,小数点的位置不变,得到的数字就是我们所求的十六进制数。如果向左(向右)取四位后,取到最高(最低)位时候,如果无法凑足四位,可以在小数点最左边(最右边),即整数的最高位(最低位)添0,凑足四位。
1.例:将二进制11101001.1011转换为十六进制(结果E9.B)
十进制:   0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15
十六进制:  0 1 2 3 4 5 6 7 8 9 A  B  C  D  E  F
so:
  1110 = 1*2^3 + 1*2^2 + 1*2^1 + 0*2^0 = 8+4+2+0 = 14 = E
  1001 = 1*2^3 + 0*2^2 + 0*2^1 + 1*2^0 = 8+0+0+1 = 9
  1011 = 1*2^3 + 0*2*2 + 1*2^1 + 1*2^0 = 8+0+2+1=11 = B
  结果 = E9.B2)将十六进制转换为二进制
方法:取一分四法,即将一位十六进制数分解成四位二进制数,用四位二进制按权相加去凑这位十六进制数,小数点位置照旧。
例1:将十六进制6E.2转换为二进制(结果01101110.0010110110.001
详细参考文章:https://www.sojson.com/hexconvert.html

原码,反码,补码的转换
这里写图片描述

以此图为例:
先得到原码,负数的反码就是除第一位,其他都反过来,补码就是反码+1
          正数的反码补码都是原码
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值