Hoe aan te vullen een Two's gebruiken in een Bit Shift

Twee-complement notatie is een werkwijze voor negatieve getallen met binaire bits expressie. Omdat de computer instructies zijn in binaire, twee-complement is noodzakelijk in de programmering. Het is aanzienlijk sneller dan andere vormen van rekenkundige omdat er geen translatie vereist. De volgende stappen laten zien hoe je een twee-complement te gebruiken in een beetje verschuiven.

instructies

1 Bestudeer gewone binaire notatie. De meest rechtse plaats vertegenwoordigt 2 ^ 0 of 1 en elke volgende plek aan de linkerkant betekent een extra kracht 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 .

2 Omzetten van een binaire waarde naar een decimale waarde. Wij zullen alle van de machten van 2 die een 1 hebben in de desbetreffende locatie van de binaire waarde vatten. Als bijvoorbeeld de binaire waarde 1101, dan is de decimale equivalent 1x2 + 1x2 ^ 3 ^ 2 + 0x2 + 1x2 ^ 1 ^ 0 = 8 + 4 + 0 + 1 = 13.

3 Onderzoek twee-complement notatie. De meest linkse plaats is een teken beetje met een 1 wijst op een negatief getal en de andere bits zijn magnitude bits.

4 Bereken een waarde in two's complement notatie gelijk aan een gewone binaire waarde als het meest linkse cijfer 0. Als het 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 Let op het effect van een twee-complement waarde aan een beetje shift. Het teken bit is bewaard gebleven, dus een juiste bit shift door n plaatsen van een twee-complement waarde zal deze waarde te delen door 2 ^ n en naar beneden afronden. Op dezelfde manier zal een beetje links 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 twee-complement waarde. Voor een beetje links shift, 1101 (-3) wordt 1.010 (-6). Een juiste bit verschuiving zal maken 1.101 (-3) worden 1.110 (-2).