Tengo un poco de cadena de 32 caracteres que necesito para representar como hexadecimal en Python. Por ejemplo, la cadena "10000011101000011010100010010111" necesita también ser de salida como "83A1A897".

Sugerencias sobre la mejor manera de ir sobre esto en Python?

OriginalEl autor Chris Wiegman | 2011-02-23

6 Comentarios

  1. 2
    >>> binary = '10010111'
    >>> int(binary,2)
    151
    >>> hex(int(binary,2))
    '0x97'

    Espero que esto ayude!

    OriginalEl autor VoronoiPotato

  2. 2

    Usted puede hacer esto muy fácil con la estructura en funciones.
    La primera cosa que quiero hacer es convertir el binario de un número entero:

    >> int("1010",2)
    10

    El segundo paso, entonces, sería para representar esto como hex:

    >> "%04X" % int("1010",2)
    '000A'

    en caso de que no desee de cualquier longitud predefinida de la cadena hexadecimal, a continuación, sólo tiene que utilizar:

    >> "%X" % int("1010",2)
    'A'
    >> "0x%X" % int("1010",2)
    '0xA'
    Esta es la respuesta correcta. hex(int("10", 2)) también funciona, pero el punto principal es que usted tiene que pasar un valor para el segundo parámetro de la función int. Su firma es def __init__(self, x, base=10):

    OriginalEl autor sebs

  3. 0

    Para leer un número en cualquier base de utilizar builtin int función con el segundo parámetro opcional de la especificación de la base (en este caso 2).

    Para convertir un número en una cadena de su forma hexadecimal solo uso el hex función.

    >>> number=int("10000011101000011010100010010111",2)
    >>> print hex(number)
    0x83a1a897L

    OriginalEl autor MAK

  4. 0

    Bien podríamos formato de cadena justo como Mark Byers, dijo.O de otra manera podríamos formato de cadena en otro método como el siguiente:

    >>> print('{0:x}'.format(0b10000011101000011010100010010111))
    83a1a897

    Para hacer los alfabetos entre los hexadecimal en mayúsculas intente esto:

    >>> print('{0:X}'.format(0b10000011101000011010100010010111))
    83A1A897

    Espero que esto sea útil.

    OriginalEl autor

  5. 0

    En python 3 necesitará este código, ya no hay soporte para 2 argumentos.

    value = hex(int("10000011101000011010100010010111"))

    ¿Cómo puedo convertir de una cadena de bits a una cadena hexadecimal en Python?

    Esto no es correcto, sería tratar 10000011101000011010100010010111 como una base de valor 10, en lugar de la base 2.

    OriginalEl autor Enchant97

Dejar respuesta

Please enter your comment!
Please enter your name here