您好,欢迎来电子发烧友网! ,新用户?[免费注册]

当前位置:电子发烧友网 > 图书频道 > 电子 > 《计算机组成原理与汇编语言》 > 第1章 预备知识

第2节 八进制与十六进制

1.3.1 八进制记数法
 
 例如:

   八进制数372.01,根据各位的权不同可以写成:(372.01)8=3×8^2+7×8^1+2×8^0+0×8^-1+1×8^-2

   将上式中各位与其权相乘而后加到一起,就可以得到八进制数372.01的 十进制数为:(372.01)8=(250.015625)10,这也表明了八进制数转换为十进制数的过程。
 
    十进制数转换为八进制数的方法是:对于十进制整数采用“除8取余”的方法转换为八进制整数;对于十进制小数则采用“乘8取整”的方法转换为八进制小数。例如,

   将十进制数194.46875转换成八进制数时,应将整数部分和小数部分分别转换,最后再合到一起就得到要转换的八进制数:
 
             194÷8=24 余数为 2   0.46875×8=3.75 整数部分 3

            24÷8=3     0   0.75×8=6.0         6

            3÷8=0      3 

 所以,(194.46875)10=(302.36)8 

 二进制数转换成八进制数的方法就是从小数点起,把二进制数每三位分成一组,然后写出每一组的等值八进制数,顺序排列起来就得到所要求的八进制数。
 
 例如:
    将二进制数11101111010.1011转换为八进制数:

    (011 101 111 010 . 101 100)2 

    (3   5  7  2 . 5  4 )8

 依据同样的思想,即一位八进制数用三位二进制数表示,就可以直接将八进制数转换成二进制数。
 
 例如:

    将八进制数712.46转换为二进制数,其过程如下:

   ( 7  1  2 . 4  6 )8 

   (111 001 010 . 100 110)2 
 
1.3.2十六进制记数法
         
   例如:
       十六进制数E5D7.A3可以表示为:
         
       (E5D7.A3)16  =E×16^3+5×16^2+D×16^1+7×16^0+A×16^-1+3×16^-2
         
        整数部分:

        47632÷16=2977    余数  0→16进制数 0

        2977÷16=186         1→     1 

        186÷16=11          10→     A 

        11÷16=0           11→     B 

        小数部分:

        0.78125×16=12.5   整数  12→     C 

        0.5×16=8.0         8→     8 

        最后得到(47632.78125)10=(BA10.C8)16           
         
        由于一位十六进制数可以用四位二进制数来表示,因此二进制数与十六进制数的相互转换就比较容易。二进制数到十六进制数的转换是由小数点开始,

        每四位二进制数为一组,将每一组用相应的一位十六进制数来表示,即可得到正确的十六进制数.
   例如:
         
        (1 1101 0100 1011 0111 . 0101 1110 1010)2

        (1  D  4   B  7  .  5  E   A )16