当前位置:   article > 正文

python如何进行进制转换_python进制转换

python进制转换

一、各种进制的介绍

十进制(Decimal)

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

二进制(Binary)

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

八进制(Octal)

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

十六进制(Hexadecimal)

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

二、python进制的转换方法

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

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

  1. num=10
  2. print(bin(num))

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

0b10100

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

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

  1. num=20
  2. print(oct(num))

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

0o24

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

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

  1. num=20
  2. print(hex(num))

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

0x14

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

  1. num1=0b10100
  2. num2=0o24
  3. num3=0x14
  4. print(int(num1),int(num2),int(num3))

输出十进制

20 20 20

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

  1. num1=0b10100
  2. print(oct(num1))

输出八进制

0o24

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

  1. num1=0b10100
  2. print(hex(num1))

输出十六进制

0x14

三、进制转换算法

1、二进制 → 十进制

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

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

2、八进制 → 十进制

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

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

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

3、十六进制 → 十进制

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

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

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

4、十进制 → 二进制

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

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

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/article/detail/54635
推荐阅读
相关标签
  

闽ICP备14008679号