数据进制的转换以及定点数的表示(原码、补码、反码、移码)

一、不同进制之间的转换

      首先,要介绍一下基数和位权,所谓基数就是在进位计数法中,每个数位所能用到的不同数码的个数,如十进制的基数为10(0~9)。每个数码所表示的数值等于该数码本身乘以一个与它所在数位有关的常数,这个常数则称为位权。下面将详细介绍不同进制之间的转换:
      (1)二进制转化为八进制和十六进制
      对于一个二进制混合数,在转换时应以小数点为界。其整数部分,从左往右数,将一串二进制数分为3位(八进制)一组或4位(十六进制)一组,在数的最左边适应性补“0”;对于小数部分,从右往左数,也是每三位一组或四位一组,最右边适应性补“0”。比如:
      一个二进制数1111000010.01101分别转换为八进制和十六进制。
      转换为八进制为:001    111    000    010    .   011    010,对应八进制数为1702.32
      转换为十六进制为:0011    1100    0010    .   0110    1000,对应十六进制数为3C2.68
      当然八进制或者十六进制转化为二进制也比较简单,只需要将每一位改为3位或4位二进制就可以了。而八进制与十六进制的互相转换则可以通过二进制过渡。
      (2)任意进制转换为十进制
      将任意进制的数各个数码与他们的权值相乘,再把乘积相加就可。
      (3)十进制转换为任意进制
      一个十进制转化为任意进制通常采用基数乘除法。这种转换方法对于十进制的整数部分与小数部分分别处理,对于整数部分采用除基取余法,对于小数部分采用乘基取整法。比如下面一个例子:
      将十进制123.6875转换成二进制数。
      整数部分,采用除基取余法,整数部分先除基取余,最先得到的余数为数的最低位,最后取得的余数为数的最高位,直到商为0时结束。
数据进制的转换以及定点数的表示(原码、补码、反码、移码)
      故整数部分转换为二进制为1111011
      小数部分,采用乘基取整法,小数部分乘基取整,最先取得的整数为最高位,最后取得的整数位最低位,乘积为0时结束。数据进制的转换以及定点数的表示(原码、补码、反码、移码)
      故小数部分转化为二进制为:0.1011
      所以123.6875转换为二进制为1111011.1011

二、定点数的表示

。。。。