¿Cuál es el papel del complemento de C?
En los primeros días, la unidad aritmética de la computadora solo necesitaba implementar un sumador para realizar cuatro por cuatro operaciones aritméticas.
Dado que el código digital en la computadora tiene un número finito de dígitos, la resta en realidad equivale a sumar el complemento del minuendo, mientras que la multiplicación es una suma cíclica y la división es una resta cíclica. Este tipo de pensamiento se llama pensamiento transformacional en matemáticas. En términos del arte de la guerra, es "similar pero similar" a los métodos de préstamo de "pedir prestado un cuchillo para matar" y "pedir prestado un cadáver para devolverle la vida al alma". ". En palabras de Newton, se llama "pararse sobre los hombros de gigantes".
Por ejemplo, en binario de 8 bits, para calcular 1-1, simplemente suma 1 al complemento de -1.
El código original de -1 es: 1000 0001, el bit más alto es el signo, 1 representa un número negativo y 0 representa un número positivo.
El código inverso de -1: 1111 1110. Excepto por el bit de signo, cada 0 se convierte en 1 y 1 se convierte en 0.
El complemento de -1: 1111 1111. Sumar 1 al código inverso es el complemento.
1-1 = 1 1111 1111 = 1 0000 0000, debido a que solo hay representación binaria de 8 bits, se desborda en este momento y el bit de desbordamiento no se puede representar en el hardware, por lo que el resultado sigue siendo 0.