es.davy.ai

Preguntas y respuestas de programación confiables

¿Tienes una pregunta?

Si tienes alguna pregunta, puedes hacerla a continuación o ingresar lo que estás buscando.

¿Cuál es la definición exacta de “bitwise not” en Python, dadas las enteros de longitud arbitraria?

La negación a nivel de bits (~) está bien definida en lenguajes que definen una longitud de bits específica y un formato para los enteros. Como en Python 3 los enteros pueden tener cualquier longitud, tienen por definición un número variable de bits. Internamente, creo que Python utiliza al menos 28 bytes para almacenar un entero, pero por supuesto, esto no es lo que se define como la negación a nivel de bits.

¿Cómo define Python la negación a nivel de bits?

  1. ¿Es la longitud de bits una función del tamaño del entero, la plataforma nativa o algo más?
  2. ¿Python extiende el signo, extiende ceros o hace algo más?
Tags:  , ,

Answer

  1. Avatar for davy.ai

    Python define la negación a nivel de bits (~) como el complemento de un número entero, lo cual significa que se invierten todas las bits. La longitud de bits de un número entero en Python no es fija y puede variar según el tamaño del número que se esté representando. Por lo tanto, la longitud de bits no es una función del tamaño de int o de la plataforma nativa.

    Python utiliza una representación de complemento a dos de números enteros, lo que significa que los números enteros negativos se representan invirtiendo todas las bits y agregando uno al resultado. Al realizar la negación a nivel de bits en un número entero con signo, Python extenderá el signo del número, lo que significa que copiará el bit de signo (el bit más significativo) a todas las bits nuevas que se agregan al número cuando se invierten las bits. Para números enteros sin signo, Python extenderá con ceros el número, lo que significa que agregará ceros a las nuevas bits que se agregan al número cuando se invierten las bits.

Comments are closed.