进制转换
2018-07-17 本文已影响0人
文化银儿
数据在计算机里面的存储,都是二进制数(0101...)
1.十进制
基数:0,1,2,3,4,5,6,7,8,9
特点:逢10 进1
123=3+20+100
=3*1+2*10+1*100
=3*(10**0) + 2*(10**1) + 1*(10**2)
2.二进制
基数:0 1
特点:逢2进1
101011 = 1*(2**0)+1*(2**1)+0*(2**2)+1*(2**3)+0*(2**4)+1(2**5)
=1*1 + 1*2 + 0*4 + 1*8 + 0*16 + 1*32
=1+2+8+32
=43
3.八进制
基数:0,1,2,3,4,5,6,7
特点:逢八进一
17 = 7*(8**0)+1*(8**1)
=7+8
4.十六进制
基数:0,1,2,3,4,5,6,7,8,9,(a/A/10),(B/b/11),(C/c/12),(D/d/13),(E/e/14),(F/f/15)
特点:逢16进1
2f = 15*(16**0) + 2*(16**1)
=15+32
=47
5.进制间的转换:
十进制-->二进制:除2取余 (除到商为0,就不在除了, 在倒着写)
十进制-->八进制:除8取余
十进制-->十六进制:除16取余
总结:十进制转成其他进制,就是整除取余法
1.八进制-->二进制:一位八进制转成三位二进制 (23=010 011)(不够三位前面加0)
2.十六进制-->二进制:一位十六进制转成四位的二进制 (2F=0110 1111)(不够前加0)
3.二进制-->八进制:三位二进制换成一位八进制数
4.二进制-->十六进制:四位二进制换成一位十六进制数
python中的二进制、八进制和十六进制
1.默认的数字是十进制
print(123) #123
2.基数是0,1;并且数字前加0b 表示二进制
print(0b1011) #11
bin(整数)-->将其他进制的整数转换成二进制数
print(bin(20)) #0b10100
print(bin(0x1df)) #0b111011111
3.基数是0-7;且在数字前加0o 表示八进制
print(0o1573) #891
oct(整数)-->将其他进制的数转化成八进制
print(oct(10)) #0o12
print(oct(0b1011)) #0o13
4.基数是0-9,a-f (A-F), 且在数字前加0X 表示十六进制
print(0x1d) #29
print(0X1D) #29 (0X和0x都一样)
hex(整数)-->将其他进制的数,转换成十六进制的
print(hex(0o567)) #0x177
print(bin(53))