进制转换

我们常用的进制有:二进制、八进制、十进制、十六进制

二进制:0-1
八进制:0-7
十进制:0-9
十六进制:0-f

1、十进制转换为二进制
  (1)、整数部分:除2取余法,即每次将整数部分除2,直到商为0为止,将余数从后往前数即是二进制数

例:将十进制的100转换为二进制

100 / 2 = 50    --- 0
50 / 2 = 25     --- 0
25 / 2 = 12     --- 1
12 / 2 = 6      --- 0
6 / 2 = 3       --- 0
3 /2 = 1        --- 1
1 / 2 = 0       --- 1

将余数从后往前数,所以十进制的100就是1100100

  (2)、小数部分:乘2取整法,即将小数部分乘以2取整数部分,剩下的小数部分继续乘2,直到小数部分为0为止,如果小数部分永远不为0,就同十进制数的四舍五入一样,按照要求保留多少位小数时,就根据后面一位是0还是1,取舍,如果是零,舍掉,如果是1,向前入一位。将整数部分从前往后数即是二进制数

例1:将十进制的0.125转换为二进制

0.125 * 2 = 0.25  --- 0
0.25 * 2 = 0.5    --- 0
0.5 * 2 = 1.0     --- 1

将整数部分从前往后数,所以十进制的0.125是0.001

例2:将0.45转换为二进制(保留到小数点第四位) 
  
0.45 * 2 = 0.9  --- 0
0.9 * 2 = 1.8   --- 1
0.8 * 2 = 1.6   --- 1
0.6 * 2 = 1.2   --- 1

将整数部分从前往后数,所以十进制的0.45保留四位小数为是0.0111

2、二进制转换为十进制
  按权位相加,即将二进制每位上的数乘以权,然后相加之和即是十进制数

例:将101.101 转换为十进制
整数部分:2^2 + 2^0 = 5
小数部分:2^(-1) + 2^(-3) = 1/2 + 1/8 = 0.5 + 0.125 = 0.625
十进制: 2^2 + 2^0 + 2^(-1) + 2^(-3)  = 5.625

3、二进制转换为八进制
  将二进制数整数部分从右到左每三位分成一组,将二进制小数部分从左到右每三位分成一组,不足三位补0,每三位代表一个八位进制数

例:将二进制数1101100.01转换为八进制 
1101100.01 => 001 101 100.010
整数部分:
  2^0 = 1
  2^2 + 2^0 = 5
  2^2 = 4
小数部分:
  2^1 = 2
八进制:154.2

4、二进制转换为十六进制
  将二进制数整数部分从右到左每四位分成一组,将二进制小数部分从左到右每四位分成一组,不足四位补0,每四位代表一个十六位进制数

例:将二进制数1101100.01转换为八进制 
1101100.01 => 0110 1100.0100
整数部分:
  2^2 + 2^1 = 6
  2^3 + 2^2 = c
小数部分:
  2^2 = 4
八进制:6c.4

5、其他进制转换
  (1)、十进制转八进制,整数部分除8取余法,小数部分乘8取整法

例:将十进制数796.703125转换为八进制数 
整数部分(从后往前读):
    796/8 = 99      --- 4
    99/8 = 12       --- 3
    12/8 = 1        --- 4
    1/8 = 0         --- 1
小数部分(从前往后读)
    0.703125 x 8= 5.625 --- 5
    0.625 x 8 = 5.0     --- 5
八进制:1434.55

  (2)、八进制转换为十进制,按权相加法,即将八进制每位上的数乘以位权,然后相加之和即是十进制数。

例:将八进制数127.42转换为十进制 
整数部分:
  1x8^2 + 2x8^1 + 7x8^0 = 87
小数部分:
  4x8^(-1) = 0.5
  2x8^(-2) = 0.03125
十进制:87.53125

  (3)、十进制转十六进制,整数部分除16取余法,小数部分乘16取整法

例:将十进制数796.703125转换为十六进制数 
整数部分(从后往前读):
    796/16 = 49      --- c
    49/16 = 3        --- 1
    3/16 = 0         --- 3
小数部分(从前往后读)
    0.703125 x 16= 11.25 --- b
    0.25 x 26 = 4.0      --- 4
十六进制:31c.b4

  (4)、十六进制转换为十进制,按权相加法,即将十六进制每位上的数乘以位权,然后相加之和即是十进制数。

例:将八进制数127.42转换为十进制
整数部分:
  1x16^2 + 2x16^1 + 7x16^0 = 295
小数部分:
  4x16^(-1) = 0.25
  2x16^(-2) = 0.0078125
十进制:295.2578125

  (5)、十六进制转换为八进制

1.先转换为十进制再相互转换
2.先转换为二进制再相互转换

你可能感兴趣的:(进制转换)