进制转换

数据在计算机里面的存储,都是二进制数(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))

你可能感兴趣的:(进制转换)