Two's complement notatie is een methode voor het uiten van negatieve getallen met binaire bits . Omdat de computer instructies zijn in binaire , twee-complement is noodzakelijk in de programmering . Het is duidelijk sneller dan andere vormen van rekenkundige omdat geen vertaling vereist . De volgende stappen laten zien hoe het complement van een twee in een beetje verschuiving gebruiken . Instructies 1 Studie gewone binaire notatie . De meest rechtse plaats vertegenwoordigt 2 ^ 0 of 1 en elke opeenvolgende positie naar links betekent een extra vermogen van 2 . Daarom is de tweede plaats aan de rechterkant is 2 ^ 1 of 2 , de derde plaats aan de rechterkant is 2 ^ 2 of 4 . Kopen van 2 Zet een binaire waarde naar een decimale waarde . We zullen allemaal van de machten van 2 die een 1 hebben in de desbetreffende locatie van de binaire waarde samenvatten . Als bijvoorbeeld de binaire waarde 1101 , dan is het decimale equivalent 1x2 + 1x2 ^ 3 ^ 2 + 0x2 + 1x2 ^ 1 ^ 0 = 8 4 0 1 = 13 . 3 Bestudeer twee -complement-notatie . De meest linkse plaats is een teken-bit met een 1 wijst op een negatief getal en de andere bits zijn magnitude beetjes . 4 Bereken een waarde in de twee -complement-notatie hetzelfde als een gewone binaire waarde als de meest linkse cijfer is 0 . Als de meest linkse cijfer is een 1 , 2 ^ n wordt afgetrokken van de normale binaire waarde waarbij n het aantal cijfers in de waarde . Bijvoorbeeld , in stap 2 , 1101 is 13 in gewone binaire notatie . In two's complement notatie echter 1101 = 13-2 ^ 4 = 13-16 = -3 5 Houd het effect van twee -complement waarde op een bitverschuiving . . De teken-bit is bewaard gebleven , zal dus een juiste bit shift door n plaatsen van een complement waarde van twee van die waarde te delen door 2 ^ n en naar beneden afronden . Evenzo zal een linker beetje verschuiving van een twee-complement waarde die waarde te vermenigvuldigen met 2 ^ n voorwaarde dat er geen overloop . 6 Overweeg een beetje verschuiving op een specifieke aanvulling waarde twee 's . Voor een linker bits schuifregister , 1101 ( -3 ) wordt 1010 ( -6 ) . Een juiste bit verschuiving zal maken 1101 ( -3 ) worden 1.110 ( -2 ) .
|