Python Ejercicio de ejemplo 55

Python 100例Python 100 ejemplos

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 bit

11010101 + 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

#!/usr/bin/python
# -*- 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例Python 100 ejemplos

Otras extensiones