主题模式
[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