Science >> Wetenschap & Ontdekkingen >  >> Wiskunde

Negatieve getallen omzetten in binair:een praktische gids voor het complement van twee

Door Kevin Beck Bijgewerkt op 30 augustus 2022

scyther5/iStock/GettyImages

Negatieve getallen zijn een bekend concept, maar het omzetten ervan in binaire getallen kan contra-intuïtief aanvoelen als je alleen gewend bent aan decimale rekenkunde. In de wereld van de informatica maakt een gestandaardiseerde methode (twee-complement) deze conversie echter zowel eenvoudig als betrouwbaar.

Omdat computers informatie in een binaire toestand verwerken (0 (uit) of 1 (aan)) worden alle rekenkundige bewerkingen, inclusief het verwerken van negatieve waarden, uiteindelijk uitgevoerd met behulp van deze twee cijfers. Dit ontwerp is de reden waarom je termen als bit, nybble (4 bits), byte (8 bits), word en long word tegenkomt in de technische documentatie.

Wat zijn binaire getallen?

In een binair systeem vertegenwoordigt elke positie een toenemende macht van twee:1, 2, 4, 8, 16, enzovoort. Een binaire reeks zoals 0101 heeft een decimale waarde van 5 omdat de 1's de 1 en 4 plaatsen innemen (1+4=5). Op dezelfde manier vertaalt de byte 10011100 zich naar 128+16+8+4=156 in decimalen.

Het complement van een binair getal wordt verkregen door elk bit om te draaien, waarbij nullen in 1s en 1s in 0s worden veranderd. Het complement van 10011100 is bijvoorbeeld 01100011.

Voorbeelden van binaire getallen

Deze eenvoudige conversies illustreren hoe binaire waarden worden toegewezen aan decimale getallen en hoe de complementbewerking wordt uitgevoerd.

Negatieve getallen omzetten naar binair

Om een negatief decimaal getal in binair getal te coderen, vertrouwen programmeurs op het twee-complement. Deze techniek instrueert de processor om elk binair getal dat met een 1 begint, als negatief te behandelen. De conversiestappen zijn:

  1. Convert de absolute waarde van het getal naar binair.
  2. Bereken het complement ervan door elk bit om te draaien.
  3. Voeg er één toe aan de aangevulde waarde.

Laten we bijvoorbeeld –47:

converteren
  1. Binair voor +47:00011111
  2. Aanvulling:11100000
  3. Voeg er één toe:11100001

Het resultaat, 11100001, is de twee-complementrepresentatie van –47, waarbij de eerste 1 een negatieve waarde aangeeft. Deze methode wordt universeel toegepast op hardware- en softwareplatforms en zorgt voor een consistente verwerking van ondertekende gehele getallen.