Av Kevin Beck Uppdaterad 30 augusti 2022
scyther5/iStock/GettyImages
Negativa tal är ett bekant begrepp, men att konvertera dem till binära tal kan kännas kontraintuitivt om du bara är van vid decimalaritmetik. Inom datavetenskapens värld gör en standardiserad metod – tvåkomplement – denna omvandling både enkel och tillförlitlig.
Eftersom datorer bearbetar information i binärt tillstånd – antingen 0 (av) eller 1 (på) – utförs alla aritmetiska operationer, inklusive hantering av negativa värden, med dessa två siffror. Den här designen är anledningen till att du kommer att se termer som bit, nybble (4 bitar), byte (8 bitar), ord och långt ord i teknisk dokumentation.
I ett binärt system representerar varje position en ökande potens av två:1, 2, 4, 8, 16, och så vidare. En binär sträng som 0101 har ett decimalvärde på 5 eftersom 1:orna upptar 1- och 4-platserna (1+4=5). På samma sätt översätts byten 10011100 till 128+16+8+4=156 i decimal.
Komplementet av ett binärt tal erhålls genom att vända varje bit – ändra 0:or till 1:or och 1:or till 0:or. Till exempel är komplementet till 10011100 01100011.
Dessa enkla konverteringar illustrerar hur binära värden mappas till decimaltal och hur komplementoperationen utförs.
För att koda ett negativt decimaltal i binärt, förlitar sig programmerare på tvås komplement. Denna teknik instruerar processorn att behandla alla binära tal som börjar med en 1 som negativa. Konverteringsstegen är:
Låt oss till exempel konvertera –47:
Resultatet, 11100001, är de tvås komplementrepresentation av –47, med den ledande 1:an som signalerar ett negativt värde. Denna metod används universellt över hårdvaru- och mjukvaruplattformar, vilket säkerställer konsekvent hantering av signerade heltal.