Representationer av tecknade tal

Representationer av tecknade tal används för att lösa problemet med att representera negativa heltal i binär form. Problemet med att försöka lagra det negativa tecknet (-) i ett binärt tal är att det inte finns några tillstånd kvar att använda för att representera den negativa tilldelningen. Det är inte möjligt att bara använda "off" för minus och "on" för plus eftersom datorn inte skulle ha något sätt att veta om det är en siffra eller ett tecken.

För att lösa detta problem uppfann datorkonstruktörer två metoder för att lagra negativa binära tal: tecken och magnitud och tvåkomplement. Dessa metoder ger alternativa representationer för tecknade tal.

 

Tecken och magnitud

Sign and Magnitude fungerar genom att ändra den mest signifikanta biten (MSB - den första siffran) till en 1 om talet är negativt, och minska talet med ett, till exempel:

0000 0010 (2)

kommer att bli...

1000 0010 (-2)

Denna metod för att lagra negativa binära tal fungerar inte eftersom:

  • Binär aritmetik fungerar inte.
  • Vi måste först veta vilken lagringsmekanism kompilatorn för ett visst språk använder.
 

1-komplement

1:s komplement fungerar till exempel genom att byta ut 1:or mot 0:or och 0:or mot 1:or:

0000 0010 (2)

kommer att bli...

1111 1101 (-2)

Precis som med tecken- och magnitudmetoden kan detta enkelt definieras som ett negativt tal eftersom dess mest signifikanta bit är 1.

 

2:s komplement

Komplettering av tvåan är ett svårare sätt att lagra negativen. Det finns tre steg för det:

  1. Hitta det positiva binära talet (t.ex. 8base 10 = 0000 1000base 2).
  2. Byt ut 1:orna mot 0:or och 0:orna mot 1:or (t.ex. 0000 1000base 2 blir 1111 0111base 2).

Detta kallas att "vända på bitarna", eller att tillämpa logisk NOT på den ursprungliga bas 2-representationen.

  1. Lägg till 1 (t.ex. 1111 0111bas 2 + 1bas 2 = 1111 1000bas 2).

Den här metoden är populär eftersom:

  • Det är som tecken och magnitud; ett negativt tal börjar med en 1 och ett positivt tal börjar med en 0.
  • Den binära aritmetiken fungerar.
  • Det finns bara ett värde för 0 (0000 0000bas 2).
 

AlegsaOnline.com - 2020 / 2023 - License CC3