Podría ser más fácil entender esto en decimal. Imagine que estamos haciendo aritmética en números de base de tres dígitos 10: 445, 900, 132, 042, 007, etc. Podemos sumar los números, pero el resultado siempre se trunca a tres dígitos. Aquí hay un ejemplo:
\ $ 900 + 132 = 1032 \ a 032 \ $
Ahora, mira lo que sucede cuando agregamos 999 a un número:
\ $ 042 + 999 = 1041 \ a 041 \ $
\ $ 041 + 999 = 1040 \ a 040 \ $
\ $ 040 + 999 = 1039 \ a 039 \ $
¡Mientras eliminemos el cuarto dígito, agregar 999 (el número de tres dígitos más grande posible) funciona igual que restar 1!
El binario funciona de la misma manera. En su ejemplo, agregar el mayor número posible de cuatro bits funciona igual que restar 1. Nuevamente, esto se debe a que estamos eliminando el límite máximo.
\ $ 0110 + 1111 = 10101 \ a 0101 \ $
\ $ 0101 + 1111 = 10100 \ a 0100 \ $
\ $ 0100 + 1111 = 10011 \ a 0011 \ $
\ $ 0011 + 1111 = 10010 \ a 0010 \ $
Esto se llama aritmética de complemento de dos . Usando este sistema, puede calcular el "negativo" de cualquier número binario de n bits restándolo de \ $ 2 ^ n \ $. Para números de cuatro bits, funciona así:
\ $ - 1 = 2 ^ 4 - 1 = 10000 - 0001 = 1111 \ $
\ $ - 5 = 2 ^ 4 - 5 = 10000 - 0101 = 1011 \ $
Por lo tanto, agregar 1011 a un número de cuatro bits es como restar 5, siempre que sueltes el último acarreo.
Hay una forma más rápida y más común de calcular el complemento de los dos: invertir todos los bits y luego agregar uno. Esto le permite calcular un negativo de cuatro bits utilizando inversión y suma, en lugar de necesitar una resta de cinco bits. Aquí es cómo calcular -1 y -5 usando este método:
\ $ - 1 = \ lnot 0001 + 1 = 1110 + 1 = 1111 \ $
\ $ - 5 = \ lnot 0101 + 1 = 1010 + 1 = 1011 \ $