Dvejetainė skaičiavimo sistema

Straipsnis iš Vikipedijos, laisvosios enciklopedijos.

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[redaguoti | redaguoti vikitekstą]

Š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[redaguoti | redaguoti vikitekstą]

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[redaguoti | redaguoti vikitekstą]

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[redaguoti | redaguoti vikitekstą]

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[redaguoti | redaguoti vikitekstą]

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

Sudėtis[redaguoti | redaguoti vikitekstą]

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

Dvejetainės sudėties lentelė
+ 0 1
0 0 1
1 1 0 (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[redaguoti | redaguoti vikitekstą]

Dvejetainės atimties lentelė
- 0 1
0 0 1 (pasiskoliname iš vyresniojo bito)
1 1 0

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[redaguoti | redaguoti vikitekstą]

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ė
X 0 1
0 0 0
1 0 1

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[redaguoti | redaguoti vikitekstą]

Dešimtainiai Dvejetainiai
0 0
1 1
2 10
3 11
4 100
5 101
6 110
7 111
8 1000
9 1001
10 1010
11 1011
12 1100
13 1101
14 1110
15 1111

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[redaguoti | redaguoti vikitekstą]

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

VI , V , IV , III , II , I , kabl. , I , II , III , IV
1 0 1 1 0 1 , 1 0 1 1
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[redaguoti | redaguoti vikitekstą]

  1. Dvejetainių trupmenų pavyzdžiai [1]
  2. Robson, Eleanor & Stedall, Jacqueline, eds. (2009), "Myth No. 2: the Horus eye fractions", The Oxford Handbook of the History of Mathematics, Oxford University Press, p. 790, ISBN 9780199213122 
  3. Rudman, Peter Strom (2007), How Mathematics Happened: The First 50,000 Years, Prometheus Books, p. 135–136, ISBN 9781615921768 .
  4. 4,0 4,1 Leibniz G., Explication de l’Arithmétique Binaire, Die Mathematische Schriften, ed. C. Gerhardt, Berlin 1879, vol.7, p.223; Engl. transl.[2]
  5. J.E.H. Smith (2008). Leibniz: What Kind of Rationalist?: What Kind of Rationalist?. Springer. p. 415. ISBN 978-1-4020-8668-7.
  6. Yuen-Ting Lai (1998). Leibniz, Mysticism and Religion. Springer. pp. 149–150. ISBN 978-0-7923-5223-5.
  7. Boole, George (2009) [1854]. An Investigation of the Laws of Thought on Which are Founded the Mathematical Theories of Logic and Probabilities (Macmillan, Dover Publications, reprinted with corrections [1958] leid.). New York: Cambridge University Press. ISBN 978-1-108-00153-3.
  8. Shannon, Claude Elwood (1940). A symbolic analysis of relay and switching circuits. Cambridge: Massachusetts Institute of Technology. hdl:1721.1/11173.
  9. „National Inventors Hall of Fame – George R. Stibitz“. 2008 m. rugpjūčio 20 d. Suarchyvuotas originalas 2010 m. liepos 10 d. Nuoroda tikrinta 2010 m. liepos 5 d.. {{cite web}}: |archive-date= / |archive-url= laiko žyma nesutampa; 2010-07-09 siūlomas (pagalba)
  10. „National Inventors Hall of Fame – George R. Stibitz“. 2008 m. rugpjūčio 20 d. Suarchyvuotas originalas 2010 m. liepos 9 d. Nuoroda tikrinta 2010 m. liepos 5 d.. {{cite web}}: |archive-date= / |archive-url= laiko žyma nesutampa; 2010-07-09 siūlomas (pagalba)
  11. „George Stibitz : Bio“. Math & Computer Science Department, Denison University. 2004 m. balandžio 30 d. Nuoroda tikrinta 2010 m. liepos 5 d..
  12. „Pioneers – The people and ideas that made a difference – George Stibitz (1904–1995)“. Kerry Redshaw. 2006 m. vasario 20 d. Nuoroda tikrinta 2010 m. liepos 5 d..