进制的转换
二进制数: 0或1 表示为 0b xxx
八进制数: 0,1,2,3,4,5,6,7 表示为 0o xxx
十进制数:0,1,2,3,4,5,6,7,8,9 表示为 默认为十进制
十六进制数: 0,1,2,3,4,5,6,7,8,9,a,b,c,d,e,f 0x xxx
二进制转十进制:
二进制数中每8个比特位为一个字节,每个位置只能是1或0.如二进制数 1111 1111
从左至右分别对应十进制数为 1*(2**7)=128, 1*(2**6)=64, 1*(2**5)=32 1*(2**4)=16, 1*(2**3)=8, 1*(2**2)=4, 1*(2**1)=2, 1*(2**0)=1 (对应位的二进制数是1就乘1, 是0就乘0)
再累加得到和 128+ 64+ 32+ 16+ 8+ 4+ 2+ 1 = 255 即 二进制数 1111,1111 对应的十进制数为 255
十进制转二进制:
方法一:
除2取余法: 255 ÷ 2 = 127..........1
127 ÷ 2 = 63............1
63 ÷ 2 = 31............1
31 ÷ 2 = 15............1
15 ÷ 2 = 7 ...........1
7 ÷ 2 = 3 ..........1
3 ÷ 2 = 1 ...........1
1
直至除至小于2自下而上取得一个商和7个余数(1或0)
方法二:
凑数法:
255 = 128 +64 + 32+ 16+ 8+ 4+ 2+ 1 所以对应的二进制位数都为1
250 = 128+ 64+ 32+ 16+ 8+ 0+ 2+ 0 所以对应的是 1111,1010
八进制转十进制:
与二进制相似: 例0o 456 对应的十进制数: 6×(8**0) + 5×(8**1)+ 4×(8**2) = 302
十进制转八进制:
同样除数取余法:
302 ÷ 8 = 37....6
37 ÷ 8 = 4......5
4
直至商小于8 自上而下得到 8进制数为 456
十六进制转十进制:
与二进制相似: 0x FFF = 15×(16**2)+15×(16**1)+15×(16**0) = 4095
十进制转十六进制:
除数取余法:
4095 ÷ 16 = 255......15
255 ÷ 16 = 15 ......15
自下而上得到对应的十六进制数为 15,15,15 即 FFF
二进制转八进制:
(每三位二进制数对应一个八进制数) 例如 0b 1010,1001 看做 010,101,001 (从右至左每三位对应一个八进制数左边不够三位补0)
010===>> 0×(2**2)+1×(2**1)+0×(2**0) =2 101===>>1×(2**2)+0×(2**1)+1×(2**0)=5 001===>>0×(2**2)+0×(2**1)+1×(2**0) = 1
所以二进制数0b 1010,1001 对应的 八进制数为251
八进制转二进制:
2==>>010, 5==>>101 , 1==>> 001 所以对应的二进制数为10101001
二进制转十六进制:
从左至右看每四位二进制数对应一位十六进制数,不够四位左边补0
10101101 ====>>>1010,1101
1010 ==> 1×(2**3) + 0×(2**2)+1×(2**1)+0×(2**0) = A(就是十) 同理: 1101===> 1×(2**3) + 1×(2**2)+ 0×(2**1)+ 1×(2**0) = D(十三)
所以 二进制0b 10101101 对应的十六进制数为 0x AD
十六进制转二进制:
A 对应的二进制数为 1010 D对应的二进制数为 1101
所以转换为二进制数为 10101101
八进制转十六进制:
八进制不能直接转换为二进制,一般将八进制先转换为二级制再转为十六进制
十六进制转八进制:
同理先将十六进制转换为二进制,再转换为八进制

浙公网安备 33010602011771号