python如何进行进制转换

一、各种进制的介绍

十进制(Decimal)

十进制的基数为10,数码由0-9组成,计数规律逢十进一。

二进制(Binary)

二进制:它由两个数码0,1组成,二进制数运算规律是逢二进一。

八进制(Octal)

理解了二进制,在理解八进制就很容易了,八进制是逢八进一,范围是 0~7。

十六进制(Hexadecimal)

十六进制数:它由十六个数码:数字0~9加上字母A-F组成(它们分别表示十进制数10~15),十六进制数运算规律是逢十六进一

二、python进制的转换方法

1、十进制转二进制(bin)

首先我们看看怎么把一个十进制转化成二进制,我们可以使用python的内置方法 bin

num=10
print(bin(num))

输出二进制(python 中二进制以ob开头)

0b10100

2、十进制转八进制(oct)

继续看十进制转化为八进制,使用方法oct(num)

num=20
print(oct(num))

输出八进制(python 中八进制以0o开头)

0o24

3、十进制转16进制(hex)

再看十进制转化16进制,同样使用python的内置方法进行hex(num)

num=20
print(hex(num))

输出十六进制(python 中十六进制以0x开头)

0x14

4、二进制、八进制以及十六进制转换十进制(int)

num1=0b10100
num2=0o24
num3=0x14
print(int(num1),int(num2),int(num3))

输出十进制

20 20 20

5、二进制转换八进制(oct)

num1=0b10100
print(oct(num1))

输出八进制

0o24

6、二进制转换十六进制(hex)

num1=0b10100
print(hex(num1))

输出十六进制

0x14

三、进制转换算法

1、二进制 → 十进制

方法:二进制数从低位到高位(即从右往左)计算,第0位的权值是2的0次方,第1位的权值是2的1次方,第2位的权值是2的2次方,依次递增下去,把最后的结果相加的值就是十进制的值了。

例如将二进制的0b101011转换为十进制的步骤如下:
第0位 1 x 2^0 = 1;
第1位 1 x 2^1 = 2;
第2位 0 x 2^2 = 0;
第3位 1 x 2^3 = 8;
第4位 0 x 2^4 = 0;
第5位 1 x 2^5 = 32;
把结果值相加1+2+0+8+0+32=43,即0b101011=43

2、八进制 → 十进制

方法:八进制数从低位到高位(即从右往左)计算,第0位的权值是8的0次方,第1位的权值是8的1次方,第2位的权值是8的2次方,依次递增下去,把最后的结果相加的值就是十进制的值了。

八进制就是逢8进1,八进制数采用 0~7这八数来表达一个数。

例如将八进制的0o34转换为十进制的步骤如下:
第0位 4 x 8^0 = 4;
第1位 3 x 8^1 = 24;
把结果值相加,4+24=28,即0o34=28

3、十六进制 → 十进制

方法:十六进制数从低位到高位(即从右往左)计算,第0位的权值是16的0次方,第1位的权值是16的1次方,第2位的权值是16的2次方,依次递增下去,把最后的结果相加的值就是十进制的值了。

十六进制就是逢16进1,十六进制的16个数为0123456789ABCDEF。

例如将十六进制的0x3c转换为十进制的步骤如下:
第0位 c x 16^0 = 12;
第1位 3 x 16^1 = 48;
把结果值相加,12+48=60,即0x3c=60

4、十进制 → 二进制

方法:除2取余法,即每次将整数部分除以2,余数为该位权上的数,而商继续除以2,余数又为上一个位权上的数,这个步骤一直持续下去,直到商为0为止,最后读数时候,从最后一个余数读起,一直到最前面的一个余数。

例如将十进制的56转换为二制的步骤如下:
将商56除以2,商28余数为0;
将商28除以2,商14余数为0;
将商14除以2,商7余数为0;
将商7除以2,商3余数为1;
将商3除以2,商1余数为1; 
将商1除以2,商0余数为1; 
因为最后一位是经过多次除以2才得到的,因此它是最高位,读数字从最后的余数向前读,111000,所以56=ob111000。
python如何进行进制转换_第1张图片

你可能感兴趣的:(算法,蓝桥杯)