Cita:
Empezado por coso
Hola,
tambien podrias asignar directamente el bit de paridad con un or (no recuerdo cual es) aunque supongo que es lo que debe hacer abs o algo bastante parecido.
Saludos.
|
No exactamente. En las computadoras binarias modernas, para obtener el negativo de un entero hay calcular el su complemento binario, de esta forma:
Código Delphi
[-]
FUNCTION Complemento (Valor: INTEGER): INTEGER;
BEGIN
RESULT := (NOT Valor) + 1;
END;
Por ejemplo, para el -3:
Código:
Complemento ( 3) = NOT ( 3) + 1 = NOT (0011) + 0001 = 1100 + 0001 = 1101 = -3
Complemento (-3) = NOT (-3) + 1 = NOT (1101) + 0001 = 0010 + 0001 = 0011 = 3
Esto mantiene la coherencia matemática:
Código:
4 - 7 = 4 + (-7) = -3
0100 - 0111 = 0100 + 1001 = 1101
Incluso con el cero:
Código:
NOT (0) + 1 = NOT (0000) + 0001 = 1111 + 0001 = 0000