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.[1]

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 egiptiečių Horo akies fragmentai naudoti dvejetainėms trupmenoms užrašyti.

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).[2] 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.[3]

Leibnicas ir dvejetainiai skaičiai

Gottfried Leibniz

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“.[4] Leibnico sistemoje naudojami 0 ir 1, kaip ir šiuolaikinėje dvejetainėje skaičių sistemoje. Leibnico dvejetainių skaičių sistemos pavyzdys:[4]

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ą.[5] 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ą.[6]

Tolimesnis vystymasis

George Boole

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.[7]

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ą.[8]

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į.[9] „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 8 d., kuris sugebėjo apskaičiuoti kompleksinius skaičius. 1940 m. rugsėjo 11 d. 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.[10][11][12]

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.

Dvejetainės sudėties lentelė
+01
001
110 (1 yra pernešamas į vyresnį bitą)

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

Dvejetainės atimties lentelė
-01
001 (pasiskoliname iš vyresniojo bito)
110

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
Dvejetainės daugybos lentelė
X01
000
101

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

DešimtainiaiDvejetainiai
00
11
210
311
4100
5101
6110
7111
81000
91001
101010
111011
121100
131101
141110
151111

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)

VI ,V ,IV ,III ,II ,I ,kabl., I, II, III, IV
101101,1011
1×25 +0×24 +1×23 +1×22 +0×21 +1×20 +1×2-1 +0×2-2 +1×2-3 +1×2-4
32 +0 +8 +4 +0 +1 +1/2 +0 +1/8 +1/16
32 +0 +8 +4 +0 +1 +0,5 +0 +0,125 +0,0625

Šaltiniai