进制转换方法总结(详细图解)

我们都会学习数学,也知道数学中基本上都是使用 十进制,当我们接触 OI 会认识 二进制,八进制,十六进制等,下面,让我来介绍一下这些进制:

  • 十进制:
    所为十进制,就是满十进一,在一串数字中,只有 0 1 2 3 4 5 6 7 8 9 这些数,不会出现 9 以上的数,这就是满十进一的十进制,也是人们最熟悉的一种进制,计算难度低。

  • 二进制:
    所为二进制,就是满二进一,在一串数字中,只有 0 1 这些数,不会出现 1 以上的数,这就是满二进一的二进制,是人们较为熟悉的一种进制,也是计算机使用的一种进制,计算难度中等。

  • 八进制:
    所为八进制,就是满八进一,在一串数字中,只有 0 1 2 3 4 5 6 7 这些数,不会出现 7 以上的数,这就是满八进一的八进制,是人们较为不熟悉的一种进制,计算难度中等。

  • 十六进制:
    所为十六进制,就是满十六进一,在一串数字中,只有 0 1 2 3 4 5 6 7 8 9 A B C D E F 这些数,不会出现 F 以上的数,这就是满十六进一的十六进制,是人们不熟悉的一种进制,计算难度较高,因为要用 A B C D E F 分别代替 10 11 12 13 14 15


下面,让我来教大家如何把十进制数转换为其他进制

  • 十进制转二进制

进制转换方法总结(详细图解)_第1张图片

短除法结束条件:n<2

例如,十进制45转换成二进制就是101101

  • 十进制转八进制

进制转换方法总结(详细图解)_第2张图片

短除法结束条件:n<8

例如,十进制45转换成八进制就是55

  • 十进制转十六进制

进制转换方法总结(详细图解)_第3张图片

短除法结束条件:n

例如,十进制45转换成八进制就是2D

  • 十进制转k进制

    进制转换方法总结(详细图解)_第4张图片

    短除法结束条件:n<(k-1)


接着,我们要知道如何把一个其他进制数转换为十进制

  • 二进制转十进制

    2 4   2 3   2 2   2 1   2 0 2^4\ 2^3\ 2^2\ 2^1\ 2^0 24 23 22 21 20
    ↓      ↓      ↓      ↓      ↓ ↓\ \ \,↓\ \ \,↓\ \ \,↓\ \ \,↓         
    1      1      0      0      1 1\ \ \,1\ \ \,0\ \ \,0\ \ \,1 1  1  0  0  1

    然后这样计算:

    1 × 2 0 + 0 × 2 1 + 0 × 2 2 + 1 × 2 3 + 1 × 2 4 1\times2^0+0\times2^1+0\times2^2+1\times2^3+1\times2^4 1×20+0×21+0×22+1×23+1×24

    = 1 + 0 + 0 + 8 + 16 =1+0+0+8+16 =1+0+0+8+16

    = 25 =25 =25

    可以得到,11001 对应的十进制就是 25

  • 八进制转十进制

    8 4   8 3   8 2   8 1   8 0 8^4\ 8^3\ 8^2\ 8^1\ 8^0 84 83 82 81 80
    ↓      ↓      ↓      ↓      ↓ ↓\ \ \,↓\ \ \,↓\ \ \,↓\ \ \,↓         
    2      3      4      2      0 2\ \ \,3\ \ \,4\ \ \,2\ \ \,0 2  3  4  2  0

    然后这样计算:

    0 × 8 0 + 2 × 8 1 + 4 × 8 2 + 3 × 8 3 + 2 × 8 4 0\times8^0+2\times8^1+4\times8^2+3\times8^3+2\times8^4 0×80+2×81+4×82+3×83+2×84

    = 0 + 16 + 256 + 1536 + 8192 =0+16+256+1536+8192 =0+16+256+1536+8192

    = 10000 =10000 =10000

    可以得到,23420 对应的十进制就是 10000

  • 十六进制转十进制

    1 6 3   1 6 2   1 6 1   1 6 0 16^3\ 16^2\ 16^1\ 16^0 163 162 161 160
      ↓   ↓   ↓   ↓ \ ↓\quad\ ↓\quad\ ↓\quad\ ↓     
      A   0   2 D \,A\quad\,0\quad\ 2\quad D A0 2D

    然后这样计算:

    13 × 1 6 0 + 2 × 1 6 1 + 0 × 1 6 2 + 10 × 1 6 3 13\times16^0+2\times16^1+0\times16^2+10\times16^3 13×160+2×161+0×162+10×163

    = 13 + 32 + 0 + 40960 =13+32+0+40960 =13+32+0+40960

    = 41005 =41005 =41005

    可以得到,A02D 对应的十进制就是 41005

  • k进制转十进制

    k 3   k 2   k 1   k 0 k^3\ k^2\ k^1\ k^0 k3 k2 k1 k0
    ↓     ↓     ↓     ↓ ↓\ \ \ ↓\ \ \ ↓\ \ \ ↓          
    a     b     c     d a\ \ \ b\ \ \ c\ \ \ d a   b   c   d

    然后这样计算:

    d × k 0 + c × k 1 + b × k 2 + a × k 3 d\times k^0+c\times k^1+b\times k^2+a\times k^3 d×k0+c×k1+b×k2+a×k3

    = e + f + g + h =e+f+g+h =e+f+g+h

    = s u m =sum =sum

    按照这样的计算方法就可以把一个其他进制数转换为十进制了


写文章不易,求赞

你可能感兴趣的:(C++,总结,c语言,c++,c#,经验分享)