Takmer určite ste už počuli o negatívnych číslach. Ak ste sa čo i len trochu vystavili svetu počítačovej vedy a počítačového programovania, koncept binárnych čísel nie je úplne cudzí. Pokiaľ ste ale osobne nepreskúmali programovací svet, pravdepodobne ste nikdy zásadne nepracovali s binárnymi číslami.
Pretože počítače nedokážu samy „myslieť“ alebo „rozhodovať“, ale môžu s neochvejnou presnosťou plniť nariadené pokyny, matematici už dávno prišli pripravení pre počítače (alebo dostatočne trpezlivých ľudí) na sčítanie, odčítanie a iné matematické operácie, ktoré používajú iba číslice 0 a 1.
Existuje však spôsob, ako spojiť tieto dve myšlienky a vytvoriť záporné čísla? Je to tak jednoduché, ako povedať stroju, aby nalepil malú vodorovnú čiaru pred existujúce číslo a la pero a papier, alebo vďaka faktoru „bits and bytes“ veci viac zapadajú?
Čo sú to binárne čísla?
Počítače majú obrovské množstvo výpočtovej sily a dokonca aj starý počítač dokáže vykonávať výpočty takou rýchlosťou, ktorá by sa zdala nepochopiteľná aj pre najaritmeticky nadanejšiu ľudskú bytosť. Nie sú to však mozgy a jediný spôsob, ako ich prinútiť, aby spracovali komplexné informácie, je odsunúť všetko možné do jedného z dvoch stavov, napríklad ZAPNUTÉ alebo VYPNUTÉ.
V „počítači“ sa jediná 0 alebo 1 označuje ako a trocha. Medzi tieto skupiny patrí nybble (4 bity), dobre známy bajt (8), slovo (1) a dlhé slovo (32).
Desatinné čísla, ktoré zvyčajne vidíte, napríklad 492 a 35, sú „base-10“, pretože obsahujú 10 progresívnych symbolov (číslice 0 až 9), ktoré „pretočiť“ na ďalšie miesto doľava - ďalších „výkon 10“ Binárne čísla namiesto toho obsahujú iba dva symboly (číslice 0 a 1) a sú „základ-2.“ Každý pohyb doľava od konca čísla je zväčšujúcou sa silou dvoch: Koncové číslice predstavujú 1, ďalšie 2, potom 4, 8, 16 a tak ďalej.
- Desatinné číslo je akékoľvek číslo v systéme base-10, nie nevyhnutne číslo, ktoré obsahuje desatinnú čiarku.
Príklady binárnych čísel
Binárna "nybble" 0101 má 1 na 1 mieste a na 4 mieste a 0 na 2 a 8 mieste. Jeho desatinný ekvivalent je teda 1 + 4 = 5.
Podobne je bajt 1001 1100 ekvivalentný 128 + 16 + 8 + 4 (28 + 25 + 24 + 23) = 156.
The doplnok binárneho čísla je iba číslo so zmenenými číslicami „prepnuté“. Napríklad doplnok 1001 1100 = 0110 0011.
Prevod záporných čísel na binárne
To, ako prevádzate záporné desatinné číslo na binárne číslo, je pravdepodobne celkom odlišné od iných číselných prepočtov predviedli ste, pretože vaša myseľ je pri všetkých svojich komparatívnych leňochoch vo väčšine spôsobov oveľa flexibilnejšia ako ktorákoľvek iná CPU. Je to však priamy proces.
Prepočet sa vykonáva pomocou a dvojkový doplnok binárny, ktorá vyžaduje, aby programátor dal počítaču pokyn, aby interpretoval akékoľvek binárne číslo začínajúce sa číslom 1 ako záporné. Program potom skonštruuje zodpovedajúce kladné číslo v binárnej sústave, vezme jeho doplnok a pridá jedno.
Napríklad pri danom čísle −47 by počítač vytvoril binárne číslo pre +47:
0001 1111
Doplnkom je:
1110 0000
Pridaním jedného k tomu získate:
1110 0001
Všimnite si, že počítač tieto čísla „podpísal“, aby s prvou 1 zaobchádzal ako s negatívom a výsledky spracoval inak, ako len sčítaním mocnin 2 obsadených symbolom 1.