Indhold
Komplementet af 2 er et system til at repræsentere negative binære tal. Det kan også bruges til at implementere subtraktionen - at trække "A" fra "B", konvertere "A" til et negativt tal og tilføje; dette undgår at skulle bygge hardware til addition og subtraktion. Med systemet til at konvertere et binært tal til et komplement på 2 - og omvendt - er det muligt at forenkle repræsentationen af det negative tal og påvirke subtraktionen. Konvertering fra komplementet af 2 til et decimalt basenummer kræver to trin: først konvertering til binær og derefter fra binær til decimal.
Trin 1
Repræsenter decimaltalene som binære tal kontinuerligt ved at dividere dem med 2 i serien og gemme resterne. For eksempel, for at konvertere 13 til binær, divideres 13 med 2 for at få 6, og den første rest er 1. Divider med 6 med 2 for at få 3, og den anden rest er 0. Divider med 3 med 2 for at få 1 og den tredje resten, der er 1. Del 1 med 2 for at opnå 0 og resten, der er 1. De øvrige, i omvendt produktionsrækkefølge, er 1101 og decimaltalstal 13 = binært 1101. Det er lettere at genkende et binært tal, end jeg producerede det. Fra højre tilføj d X 2 ^ p, hvor "d" er det binære tal, og "p" er positionen, så 1101 = (1 X 1) + (0 x 2) + (1 x 4) + (1 x 8) = 13.
Trin 2
Transformer fra binær til komplement af to, invertering af bits og tilføjelse af 1. Så binær for 7 vil være 00000111 og negativ 7 vil være 11111001, fordi 00000111 med de inverterede bits er 11111000 og 11111000 + 1 = 11111001. Det venstre tal er signal. Positive tal har et tegnbit på nul og negative tal har et tegnbit på 1. En af de gode ting ved komplementet til 2 er, at dets konvertering til binær sker nøjagtigt ved den samme proces at konvertere fra binær til komplement af to. For eksempel, for at konvertere to komplement fra -7 til 7 binær, inverter cifrene og tilføj 1. 11111001 inverteret er 00000110 og 00000110 + 1 = 00000111.
Trin 3
Konverter fra 2's komplement til decimalt basenummer i to trin: 2's komplement til binær og efter binær til decimalbase. For eksempel, for at konvertere -21 ud over 2 - 11101011 - til decimal, skal du først konvertere til binær og derefter konvertere binær til decimal. Inverter 11101011 for at få 00010100 og tilføj 1 for at få 00010101, som er 21 i binær. Derefter afkode den binære ved hjælp af positional notation for at få (0 X 128) + (0 X 64) + (0 X 32) + (1 X 16) + (0 X 8) + (1 X 4) + (0 X 2) + (1 x 1) = 21.