Hoe negatieve getallen naar binair te converteren

Je hebt vrijwel zeker gehoord van negatieve getallen. Als je ook maar een beetje kennis hebt gemaakt met de wereld van informatica en computerprogrammering, dan is het concept van binaire getallen niet helemaal vreemd. Maar tenzij je de programmeerwereld persoonlijk hebt verkend, heb je waarschijnlijk nooit inhoudelijk met binaire getallen gewerkt.

Omdat computers niet zelf kunnen "denken" of "beslissen", maar geordende instructies met onfeilbare nauwkeurigheid kunnen volgen, kwamen lang geleden wiskundigen een manier voor computers (of voldoende geduldige mensen) om optellen, aftrekken en andere wiskundige bewerkingen uit te voeren met alleen de cijfers 0 en 1.

Maar is er een manier om deze twee ideeën te combineren om negatieve getallen te produceren? Is het zo simpel als een machine vertellen om een ​​kleine horizontale balk voor een bestaand nummer te plakken, a la pen en papier, of maakt de "bits en bytes"-factor de zaken ingewikkelder?

Wat zijn binaire getallen?

Computers hebben een enorme rekenkracht, en zelfs een oude clunker kan berekeningen uitvoeren met een snelheid die zelfs voor de meest rekenkundig begaafde mens onbegrijpelijk lijkt. Maar het zijn geen hersens, en de enige manier om ze complexe informatie te laten verwerken, is door al het mogelijke te degraderen naar een van de twee toestanden, bijvoorbeeld AAN of UIT.

In 'computer-ese' wordt een enkele 0 of 1 a. genoemd beetje. Groepen hiervan zijn de nibbelen (4 bits), de bekende byte (8), de woord (1) en de lang woord (32).

De decimale getallen die u meestal ziet, zoals 492 en 35, zijn "grondtal-10", omdat ze 10 progressieve symbolen bevatten (de cijfers 0 tot en met 9) die "omrollen" naar de volgende plaats links - de volgende "macht van 10". Binaire getallen bevatten daarentegen slechts twee symbolen (de cijfers 0 en 1) en zijn and "basis-2." Elke beweging naar links vanaf het einde van het getal is een toenemende macht van twee: de eindcijfers vertegenwoordigen 1, de volgende 2, dan 4, 8, 16 en spoedig.

  • Een decimaal getal is elk getal in het basis-10-systeem, niet noodzakelijkerwijs een getal dat een decimaalteken bevat.

Voorbeelden van binaire getallen

De binaire "nybble" 0101 heeft enen op de 1-plaats en de 4-plaats, en 0-en op de 2 en de 8-plaats. Dus het decimale equivalent is 1 + 4 = 5.

Evenzo is de byte 1001 1100 gelijk aan 128 + 16 + 8 + 4 (28 + 25 + 24 + 23) = 156.

De aanvulling van een binair getal is alleen het getal waarvan de cijfers "verwisseld" zijn. Bijvoorbeeld het complement van 1001 1100 = 0110 0011.

Negatieve getallen converteren naar binair

Hoe u een negatief decimaal getal naar een binair getal converteert, is waarschijnlijk heel anders dan andere numerieke conversies je hebt gepresteerd omdat je geest, ondanks al zijn relatieve luiheid, in de meeste opzichten veel flexibeler is dan wie dan ook PROCESSOR. Het is echter een eenvoudig proces.

De conversie wordt gedaan met behulp van a twee complement binair, waarbij de programmeur de computer moet instrueren om elk binair getal dat begint met 1 als negatief te interpreteren. Het programma dan construeert het overeenkomstige positieve getal in binair getal, neemt zijn complement en voegt er één toe.

Bijvoorbeeld, gegeven het getal −47, zou de computer het binaire getal voor +47 maken:

0001 1111

De aanvulling hiervan is:

1110 0000

Als je er één aan toevoegt, krijg je:

1110 0001

Merk op dat de computer deze getallen heeft "ondertekend" om een ​​eerste 1 als negatief te behandelen en de resultaten anders te verwerken dan het simpelweg optellen van de machten van 2 bezet door het symbool 1.

  • Delen
instagram viewer