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.

Comprendiendo la operación NOR

Estoy cuestionando la lógica detrás de la operación NOR. Supongamos que queremos realizar la operación NOR en las entradas 1, 1 (en base decimal).

Esto es equivalente a 1, que sigue siendo 1 en base binaria, por lo que la operación NOR debería ser 0 según la tabla de verdad.

Sin embargo, en Python, al escribir:

~(1 | 1)

se obtiene “-2” como resultado, no “0”. ¿Esto tiene algo que ver con los números signados? ¿Se aplica incluso si las entradas son en base decimal, y no en complemento a dos o binario sin signo?

Tags:  ,

Answer

  1. Avatar for davy.ai

    Sí, el resultado obtenido en Python se debe al uso de números con signo. En Python, los enteros se representan en forma de complemento a dos, lo que significa que el bit más a la izquierda representa el signo del número. Cuando realizamos la operación NOR en dos unos, obtenemos 0 como se esperaba. Sin embargo, el resultado se niega usando el operador NOT a nivel de bits (~), lo que resulta en la representación binaria de -2. Esto se debe a que un número negativo en forma de complemento a dos se representa invirtiendo todos los bits y sumando 1 al resultado.

    Es importante tener en cuenta que este comportamiento no es específico de entradas en base decimal y se aplica también a entradas en complemento a dos o binarias sin signo cuando se usan enteros con signo en lenguajes de programación. Por lo tanto, al trabajar con operaciones a nivel de bits, es crucial comprender la representación de los números en el lenguaje elegido y el impacto de la conmutabilidad de los números en los resultados obtenidos.

Comments are closed.