python中的进制转换函数,python的用算法进制转换详解

  python中的进制转换函数,python的用算法进制转换详解

  

  Python中整数的进制

  Python中默认所有整数都是十进制,其表示方法和我们日常看到的没什么区别。任何给定的正数,比如a=49,默认情况下变量A表示一个十进制整数。

  Python可以用二进制、八进制和十六进制来表示整数。与十进制记数法不同,这些十进制记数法需要给整数面值加上前缀。

  十进制小数——没有前缀。比如338。

  二进制——0b或OB前缀,如0b1011001。

  八进制——0o前缀,如0o557。

  十六进制——0x ——0x,比如0x16f。

  一、二进制、八进制、十六进制的整数转换为十进制的整数

  十进制数如何转换成二进制,八进制,二进制整数?

  方法是直接使用Python的内置函数bin(number)、oct(number)和hex(number)。

  简单粗暴。

  A=16#a是十进制整数。

  bin(a)

  Out[39]:0b10000

  Oct(a)#十进制到八进制。

  Out[40]:0o20

  Hex(a)#十进制转换为十六进制。

  out[41]: 0x 10 二、十进制的整数转换为二进制、八进制、十六进制的整数

  如何将二进制,八进制,十进制整数X转换成十进制整数?

  同样的功能也可以,但是这个转换比上面的稍微麻烦一点。

  方法是使用int(),一个内置函数。有些人看到这个可能觉得不难。但是,这里很容易出错。

  一般来说,我们会大量使用int()。一般我们把一串数字转换成int整数,或者把浮点数四舍五入为零。例如:

  int(98999 )

  Out[34]:98999

  类型( 98999 )

  Out[35]:str

  int(98999 )

  [36]:98999

  type(int(98999 ))

  out 37 3360 int

  int(-3.5)

  [38]:-3

  int(3.5)

  Out [39] 33603但是,如果要用int()进行不同基数之间的转换,那么它的用法就有点变化了。

  int()的完整语法是int(x,base=10)。关于这个功能,官方解释如下:

  返回基于数字或字符串X构造的integer对象,如果没有给定参数,则返回0。

  如果x不是一个数字,或者有一个base参数,那么x必须是一个字符串、字节和一个表示base的整数文字值的bytearray实例。

  也就是说,默认基数=10,也就是小数;如果base要改变默认的情况,比如base=2,那么就说明前面的x是二进制整数的时候,x的类型发生了变化,不能是int整数,必须是str字符串类型。

  所以,把二进制、八进制和十进制整数X转换成二进制整数有两种情况:

  第一种情况很简单。以二进制到十进制的转换为例。二进制整数表示为Python语言规定的形式,人们认为可以被机器识别:‘0b 101’。直接用int()函数就可以了。加上以‘0b’开头的二进制数,此时为int。可以假设它以十进制形式表示二进制数。

  如下面给出的例子:

  x=0b101

  类型(x)

  Out[50]:int#此时,type()作用于二进制整数X时,被识别为int类型。

  int(x)

  Out[51]:5第二种情况更复杂,但可能用得更多。对于人的思维来说,输入一个八进制数,比如342,会直接输入不带前缀‘0o’的342。对于这样的数字,如何转换成二进制,对于我们正常的思维来说是一个很容易的问题。

  前面已经解释过int(x,base=10),当base不再是默认的10时,x就不能再是int数据,而必须转换成str字符串类型,这样这个函数才能工作,否则会报错。以下面的例子作为说明。

  一个八进制整数754转换成十进制整数是什么结果?

  x=754

  #首先将八进制整数754转换为字符串类型,然后使用int()函数。

  int(str(x),8)

  Out[55]:492在思想上更容易接受,但是从实现层面来说,如果754通过在前面加0o直接表示为Python识别的八进制整数,那么直接使用int()函数,出错的可能性会小一些。个人推荐第一种转换方式。

  小结

  十进制整数转换成二进制,八进制,十六进制整数,直接用Python内置函数bin(number),oct(number),hex(number)就可以了。

  二进制、八进制和十六进制整数X被转换成十进制整数。首先,它们被统一表示为Python可识别的样式。二进制前面加前缀0b,八进制前面加前缀0o,十六进制前面加前缀0x,然后直接用int(x)得到需要的十进制整数。

  热门IT软件开发工作室,大量免费python视频教程,欢迎在线学习!

  本文转自:https://www.jianshu.com/p/8d5771e302a3

郑重声明:本文由网友发布,不代表盛行IT的观点,版权归原作者所有,仅为传播更多信息之目的,如有侵权请联系,我们将第一时间修改或删除,多谢。

留言与评论(共有 条评论)
   
验证码: