Python Ejercicio de ejemplo 55
Problema:Aprende a usar el complemento bit a bit ~.
Explicación:
Los números binarios se almacenan en la memoria en forma de complemento a dos.
Complemento bit a bit: cada bit del binario se invierte, 0 se convierte en 1 y 1 se convierte en 0.
El bit más significativo es el bit de signo; el bit de signo de un número positivo es 0 y el de un número negativo es 1.
Para un número positivo, el bit más significativo es 0 y los demás bits representan el valor en sí (en binario); por ejemplo, el complemento a dos de +42 es 00101010.
Para un número negativo, se invierte bit a bit el complemento a dos del valor absoluto del número y luego se suma 1 al número completo, obteniendo así el complemento a dos de dicho número. Por ejemplo, el complemento a dos de -42 es 11010110 (00101010 invertido bit a bit11010101 + 1, es decir, 11010110).
Pasos de cálculo de ~9:
转二进制:0 1001 计算补码:0 1001 按位取反:1 0110
Convertir al código original:
按位取反:1 1001 末位加 1:1 1010 符号位为 1 是负数,即 -10
Ejemplo
# -*- coding: UTF-8 -*-
a = 7
b = ~a
c = -7
d = ~c
print ('El resultado del complemento de la variable a es: %d' % b)
print ('El resultado del complemento de la variable c es: %d' % d)
La salida del ejemplo anterior es:
变量 a 取反结果为: -8 变量 c 取反结果为: 6
Explicación:
-
~7Al aplicar el complemento a 7, el complemento a dos de 7 es 00000111; al invertir el complemento se obtiene 11111000. El bit más significativo 1 es el bit de signo, lo que indica un número negativo, por lo que el entero correspondiente a este complemento es -8.
-
~-7Al aplicar el complemento a -7, el complemento a dos de -7 es 11111001; al invertir el complemento se obtiene 00000110. El bit más significativo 0 es el bit de signo, lo que indica un número positivo, por lo que el entero correspondiente al complemento es 6.
Python 100 ejemplos