Dvejetainė skaičiavimo sistema

Dvejetainė skaičiavimo sistema – skaičiavimo sistema, išreiškianti skaitines reikšmes naudojant du simbolius – 0 ir 1. Kiekvienas skaitmuo yra vadinamas bitu arba dvejetainiu skaitmeniu. Dėl paprasto įgyvendinimo skaitmeninėje elektronikoje naudojant loginius elementus, dvejetainė skaičiavimo sistema yra naudojama kompiuteriuose ir kituose elektroniniuose prietaisuose.

Dvejetainis skaičius gali būti išreikštas tam tikra bitų (dvejetainių skaitmenų) seka. Pvz., skaičius 667 dvejetainių kodu gali būti užrašytas taip: 1010011011. Skaičiai nebūtinai turi būti sveikieji. Pavyzdžiui, 1,5 dvejetainėje sistemoje gali būti užrašoma kaip 1,1 o 1,25 kaip 1,01.

Istorija 
Šiuolaikinė dvejetainė skaičių sistema Europoje buvo tyrinėta XVI–XVII a. mokslininkų Thomas Harriot, Juan Caramuel y Lobkowitz, Gottfried Leibniz bei kitų. Visgi skaičiavimo sistemos, susijusios su dvejetainiais skaičiais, daugelyje kultūrų atsirado daug anksčiau (pvz., Senovės Egipte, Kinijoje ir Indijoje).

Egiptas 
Senovės Egipto raštininkai savo trupmenoms naudojo dvi skirtingas sistemas: Egipto trupmenas (nesusijusias su dvejetaine skaičių sistema) ir Horo akies trupmenas (taip vadinasi, nes daugelis matematikos istorikų mano, kad šiai sistemai naudojami simboliai gali būti išdėstyti kaip Horo akis, nors tai buvo ginčijama). Horo akies trupmenos yra dvejetainė skaičiavimo sistema, kurią naudojo daliniams grūdų, skysčių ar kitų matų kiekiams, joje hekato dalis išreiškiama kaip dvejetainių trumpmenų 1/2, 1/4, 1/8, 1/16, 1/32 ir 1/64 suma.

Senovės egiptiečių naudotas daugybos metodas taip pat glaudžiai susijęs su dvejetainiais skaičiais. Taikant šį metodą, vieno skaičiaus daugyba iš kito atliekama seka veiksmų, kurių metu reikšmė padvigubinama arba prie jos vėl pridedamas pirmasis skaičius; tvarka, kuria šie veiksmai turi būti atliekami, pateikiama dvejetainiu antrojo skaičiaus vaizdavimu. Šio metodą panaudojimą galima pamatyti Rhindo matematiniame papiruse, kuris datuojamas maždaug 1650 m. pr. m. e.

Leibnicas ir dvejetainiai skaičiai 

Leibnicas 1679 m. studijavo dvejetainę numeraciją; 1703 m. jis paskelbė straipsnį pavadinimu Explication de l’Arithmétique Binaire. Išvertus į lietuvių kalbą - „Dvejetainės aritmetikos paaiškinimas“.  Leibnico sistemoje naudojami 0 ir 1, kaip ir šiuolaikinėje dvejetainėje skaičių sistemoje. Leibnico dvejetainių skaičių sistemos pavyzdys:
 0 0 0 1 yra lygu skaičiui 20
 0 0 1 0 yra lygu skaičiui 21
 0 1 0 0 yra lygu skaičiui 22
 1 0 0 0 yra lygu skaičiui 23
Leibnicas naudojo heksagramą iš I Ching knygos kaip dvejetainio skaičiavimo įrodymą. Būdamas sinofilu, Leibnicas žinojo apie I Ching knygą, žavėjosi kaip knygoje naudota heksagrama atitinka dvejetainius skaičius nuo 0 iki 111111 ir iš to padarė išvadą apie didelius Kinijos pasiekimus filosofinėje matematikoje, kuria jis labai žavėjosi. Dvejetainiai skaitmenys Leibnicui buvo pagrindiniai teologijos elementai. Jis tikėjo, kad dvejetainiai skaičiai simbolizuoja krikščionišką kūrimo iš nieko įdėją.

Tolimesnis vystymasis 
1854 m. britų matematikas George’as Boole’as paskelbė reikšmingą dokumentą, kuriame išsamiai aprašoma algebrinė logikos sistema, kuri tapo žinoma kaip Būlio algebra. Jo loginis skaičiavimas turėjo tapti priemone kuriant skaitmenines elektronines grandines.

1937 m. Claude’as Shannon’as MIT parengė savo magistro darbą, kuriame pirmą kartą naudojant elektronines reles ir jungiklius pademonstravo Būlio algebros ir dvejetainės aritmetikos veikimą. Shannon’o disertacija, pavadinta A Symbolic Analysis of Relay and Switching Circuits, iš esmės pagrindė praktinį skaitmeninių grandinių projektavimą.

1937 m. lapkritį George’as Stibitz’as, dirbdamas „Bell Labs“, sukūrė relės pagrindo kompiuterį, kurį pavadino „Model K“ arba „Model Kitchen“, kuris gebėjo skaičiuoti dvejetainių skaičių sudėtį. „Bell Labs“ 1938 m. pabaigoje pradėjo mokslinių tyrimų programą su Stibitz’u priešakyje. Jų „Sudėtingų Skaičių Kompiuteris“ buvo užbaigtas 1940 m. sausio 8d., kuris sugebėjo apskaičiuoti kompleksinius skaičius. 1940 m. rugsėjo 11d. demonstruodamas kompiuterį Amerikos matematikų draugijos konferencijoje Dartmund’o koledže, Stibitz’as sugebėjo teletaipiniu būdu telefono linijomis nusiųsti nuotolines vykdymo komandas kompiuteriui. Tai buvo pirmasis kompiuterinės mašinos panaudojimas nuotoliniu būdu.

Dvejetainių skaičių aritmetika 
Dvejetainių skaičių aritmetika labai panaši į kitų skaičiavimo sistemų. Dvejetainius skaičius galime sudėti, atimti, dauginti ir dalyti.

Sudėtis 
Paprasčiausia aritmetinė operacija dvejetainių skaičių aritmetikoje yra sudėtis.

Pvz:     1 1 1 1 1 (pernešami skaičiai)
     0 1 1 0 1
 +   1 0 1 1 1
 -------------
 = 1 0 0 1 0 0

Atimtis 

Pvz:    *   * * *   (iš žvaigždute pažymėtų stulpelių pasiskolinami bitai)
  1 1 0 1 1 1 0
−     1 0 1 1 1
----------------
= 1 0 1 0 1 1 1

   *            (iš žvaigždute pažymėtų stulpelių pasiskolinami bitai)
  1 0 1 1 1 1 1
-   1 0 1 0 1 1
----------------
= 0 1 1 0 1 0 0

Daugyba 
Daugyba dvejetainiu būdu yra panaši į dešimtainių skaičių daugybą. Du skaičiai A ir B gali būti padauginti iš dalinių sandaugų: kiekvienam B skaitmeniui apskaičiuojama to skaitmens A sandauga ir įrašoma į naują eilutę, paslinktą į kairę taip, kad jo dešinysis skaitmuo sutaptų su B skaitmeniu, kuris buvo naudojamas prieš tai. Visų šių dalinių produktų suma yra skaičiaus A ir B suma.

Kadangi dvejetainį skaičių sudaro tik du skaitmenys, vadinasi yra galimi tik du kiekvieno dalinio daugybos rezultatai:

 Jei skaitmuo B yra 0, dalinė sandauga taip pat lygi 0
 Jei B skaitmuo yra 1, dalinė sandauga yra lygi A

Pavyzdžiui, dvejetainių skaičių 1011 ir 1010 daugyba vyksta taip:
           1 0 1 1   (A)
         × 1 0 1 0   (B)
         ---------
           0 0 0 0   ← Atitinka 0 X 1011
   +     1 0 1 1     ← Atitinka 1 X 1011
   +   0 0 0 0
   + 1 0 1 1
   ---------------
   = 1 1 0 1 1 1 0

Dešimtainių skaičių vertimas į dvejetainius 

Viską daliname iš 2, jeigu lieka liekana, rašome 1, jeigu sveikas skaičius, rašome 0, pvz:
 667|1 667:2=333,5
 333|1 333:2=166,5
 166|0 166:2=83
 83|1 83:2=41,5
 41|1 41:2=20,5
 20|0 20:2=10
 10|0 10:2=5
 5|1 5:2=2,5
 2|0 2:2=1
 1|1 1:2=0,5

Tada gautus skaičius rašome nuo apačios į viršų, pvz: 
1|1 <--- rašome šitą 1. 
2|0 <--- rašome šitą 0 ir t. t. 
Atsakymas bus: 1010011011

Dvejetainių skaičių vertimas į dešimtainius 

Pavyzdinė schema, kaip 101101,1011(2) verčiamas į 45,6875(10)

Šaltiniai 

Skaičiavimo sistemos
Informatika