Skip to content

[Rust 其他] 十进制与二进制的转换

十进制转二进制:

用2辗转相除至结果为1 ,将余数和最后的1从下向上倒序写 就是结果

例如302                                                                 89

302/2 = 151 余0                                         89/2=44 余1

151/2 = 75 余1                                              44/2=22余0

75/2 = 37 余1                                                  22/2=11余0

37/2 = 18 余1                                                11/2=5余1

18/2 = 9 余0                                                    5/2=2余1

9/2 = 4 余1                                                      2/2=1余0

4/2 = 2 余0                                                     1/2=0余1

2/2 = 1 余0                                                 故二进制为:1011001

1/2=0余1

故二进制为100101110

二进制转换十进制:

从最后一位开始算,依次列为第0、1、2...位 ,第n位的数(0或1)乘以2的n次方 ,得到的结果相加就是答案

例如:100101110 ,反过来变成011101001               例如:1011001 ,反过来变成1001101

0*2的0次方=0              1*2的0次方=1

1*2的一次方=2             0*2的一次方=0

1*2的二次方=4             0*2的二次方=0

1*2的三次方=8             1*2的三次方=8

0*2的四次方=0             1*2的四次方=16

1*2的五次方=32            0*2的五次方=0

0*2的六次方=0             1*2的六次方=64

0*2的七次方=0             然后:1+0+0+8+16+0+64=89

1*2的八次方=256           然后:0+2+4+8+0+32+0+0+256=302