seqio - read fasta python
cómo analizar hexadecimal o decimal int en Python (5)
Esta pregunta ya tiene una respuesta aquí:
- Convertir cadena hexadecimal a int en Python 9 respuestas
Tengo una cadena que puede ser un número hexadecimal con el prefijo "0x" o un número decimal sin un prefijo especial, excepto posiblemente un signo menos. "0x123" está en la base 16 y "-298" está en la base 10.
¿Cómo convierto esto a int o long en Python?
No quiero usar eval () ya que es inseguro y excesivo.
Algo como esto podría ser lo que estás buscando.
def convert( aString ):
if aString.startswith("0x") or aString.startswith("0X"):
return int(aString,16)
elif aString.startswith("0"):
return int(aString,8)
else:
return int(aString)
Base 16 a 10 (devuelve un número entero):
>>> int(''0x123'', 16)
291
Base 10 a 16 (devolver una cadena):
>>> hex(291)
''0x123''
Esta es una versión más simple que funciona como un encanto. Devuelve una cadena ya que hex () devuelve el mismo tipo:
def itoh(int): return hex(int)[2:]
Si está haciendo muchas cosas entre diferentes sistemas numéricos, la biblioteca de cadenas de bits hace que muchas operaciones binarias / hexadecimales sean más fáciles. También es compatible con la interpretación de cadenas:
int("0x123", 0)
(¿Por qué no int("0x123")
hace eso?)