十进制与十六进制之间的转换

| 分类 Programming  | 标签 Programming  CSAPP 

十进制数 x 转化为十六进制表示

将十进制数 x 除以 16, 即 x = q * 16 + r,取得余数 r 和 商 q,此时余数 r 就是 x 用十六进制表示时的最低位值; 之后商值 q 继续进行以上的除法操作, 获取每次的余数 r 作为 十六进制表示时的低位值, 直到 q 值小于 16 为值, 此时的 q 值即为十六进制表示时的最高位值。 例如:

        314156 = 19634*16 + 12  ( C )
         19634 = 1227*16 + 2    ( 2 )
          1227 = 76*16 + 11     ( B )
            76 = 4*16 + 12      ( C )
             4 = 0.16 + 4       ( 4 )

所以 314156 = 0x4CB2C

十六进制数转化为十进制

十六进制数的位权为 16, 将十六进制数的每位乘以相应的位权,相加的总和为十进制值。

例:

0x7C0 = 7*162 + 13*161 + 0*160 = 1792 + 193 + 0 = 1984


上一篇     下一篇