Sådan konverteres negative tal til binære

Du har næsten helt sikkert hørt om negative tal. Hvis du overhovedet har haft en lille eksponering for en verden af ​​datalogi og computerprogrammering, er begrebet binære tal ikke helt fremmed. Men medmindre du personligt har udforsket programmeringsverdenen, har du sandsynligvis aldrig arbejdet væsentligt med binære tal.

Fordi computere ikke kan "tænke" eller "beslutte" alene, men kan følge bestilte instruktioner med svigende nøjagtighed, kom matematikere for længe siden op med en måde, hvorpå computere (eller tilstrækkeligt tålmodige mennesker) kan foretage addition, subtraktion og andre matematiske operationer ved kun at bruge cifrene 0 og 1.

Men er der en måde at kombinere disse to ideer på for at producere negative tal? Er det så simpelt som at bede en maskine om at stikke en lille vandret bjælke foran et eksisterende nummer a la pen og papir, eller gør "bits and bytes" -faktoren ting mere involveret?

Hvad er binære tal?

Computere har en enorm mængde processorkraft, og endda en gammel klunker kan udføre beregninger i en hastighed, der synes uforståelig for selv det mest aritmetisk begavede menneske. Men de er ikke hjerner, og den eneste måde at få dem til at håndtere komplekse oplysninger er at henvise alt muligt til en af ​​to stater, fx ON eller OFF.

I "computer-ese" betegnes et enkelt 0 eller 1 som en bit. Grupper af disse inkluderer nippe (4 bits), den velkendte byte (8), den ord (1) og langt ord (32).

De decimaltal, du typisk ser, som 492 og 35, er "base-10", fordi de inkluderer 10 progressive symboler (cifrene 0 til 9), der "vælt" til det næste sted til venstre - den næste "styrke på 10." Binære tal inkluderer i stedet kun to symboler (cifrene 0 og 1) og er "base-2." Hver bevægelse mod venstre fra slutningen af ​​tallet er en stigende styrke på to: Slutcifrene repræsenterer 1, de næste 2, derefter 4, 8, 16 og snart.

  • Et decimaltal er ethvert tal i base-10-systemet, ikke nødvendigvis et tal, der inkluderer et decimaltegn.

Eksempler på binære tal

Den binære "nybble" 0101 har 1'er på 1-pladsen og 4-pladsen og 0'er i 2- og 8-pladsen. Dets decimalækvivalent er således 1 + 4 = 5.

Tilsvarende svarer byten 1001 1100 til 128 + 16 + 8 + 4 (28 + 25 + 24 + 23) = 156.

Det supplere af et binært tal er bare tallet med dets cifre "skiftet". For eksempel komplementet af 1001 1100 = 0110 0011.

Konvertering af negative tal til binære

Hvordan du konverterer et negativt decimaltal til et binært tal, er sandsynligvis helt i modsætning til andre numeriske konverteringer du har udført, fordi dit sind på trods af dets sammenlignende dovendyr er meget mere fleksibelt på de fleste måder end nogen anden CPU. Det er dog en ligetil proces.

Konverteringen sker ved hjælp af en to komplement binære, hvilket kræver, at programmøren instruerer computeren om at fortolke ethvert binært tal, der starter med 1 som negativt. Programmet derefter konstruerer det tilsvarende positive tal i binær, tager dets komplement og tilføjer et.

For eksempel, givet tallet −47, ville computeren oprette det binære tal for +47:

0001 1111

Komplementet til dette er:

1110 0000

Tilføjelse af en til dette giver:

1110 0001

Bemærk, at computeren har "underskrevet" disse tal for at behandle en ledende 1 som negativ og behandle resultaterne anderledes end blot at tilføje de kræfter på 2, der er optaget af symbolet 1.

  • Del
instagram viewer