არქივი

Binary Code – ორობითი კოდი ციფრული ტექნოლოგიების გული


როგორც ალბათ ყველამ იცით დღეს ჩვენ XXI საუკუნეში ვცხოვრობთ  . სახლში, ოფისში, ქუჩაში, ტრანსპორტში უამრავი ელექტრო ტექნიკა გვახვევია თავს და ამას ისე მივეჩვიეთ, რომ უამათოდ ცხოვრება ბევრისთვის წარმოუდგენელია. მიუხედავად ამისა, ბევრს მხოლოდ ბუნდოვანი წარმოდგენა აქვს იმაზე, თუ კონკრეტულად როგორ მუშაობს ციფრული ტექნიკა. არა, მე არ ვგულისხმობ იმას რომ კომპიუტერს დენი ჭირდება, პრინტერი არ დაბეჭდავს თუ კარტრიჯი და ფურცელი არ აქვს და ა.შ. დღეს ორიოდე სიტყვით შევეხები ამ ყველაფრის “სულსა და გულს”, “ცენტრალურ კვანძს” და მოკლედ რა ვიცი, როგორც გინდათ ისე მოიხსენიეთ… მაშ ასე, თქვენს წინაშეა ყველა ციფრული ტექნიკის დედააზრი ანუ Binary Code – ორობითი კოდი. თემა საკმაოდ დიდია, ამიტომ ამჯერად ვეცდები მოკლედ და ლაკონურად ჩამოვაყალიბო ძირითადი დებულებელი, შემდეგ კი გადავიდეთ ბინარული კოდით ანგარიშზე და ასე შემდეგ… მაშ ასე :) :

 101111101010010001101110

მოკლე ისტორიული ექსკურსი:

ბინარული კოდირების, ანუ რაოდენობის განმსაზღვრელი აღნიშვნების ჩაწერა ორობით სისტემაში (ანუ მხოლოდ ორი ციფრის 1 და 0 გამოყენებით) ჯერ კიდევ ძველი დროის ინდოელი მეცნიერის Pingala–ს მიერ იქნა შემოთავაზებული. იგი ასევე ცნობილი იყო უძველესი ჩინური წიგნიდან “I Ching”. ყოველ შემთხვევაში მისი საწყისები სწორედ ასეთი ძველი დროით თარიღდება. ამიშ შემდგომ ხდებოდა აღნიშნული სისტემის დახვეწა და მოდერნიზება. 1605 წელს Francis Bacon–მა დაამუშავა ანბანის ასოების ორობით სისტემაში კოდირება. “I Ching”–ზე დაყრდნობითა და სხვა მონაცემების დამუშავებით 17-ე საუკუნეში Gottfried Leibniz–მა იმ დონეზეე დაამუშავა ორობითი სისტემა, რომ მას თითქმის იმავე სახით ვიცნობთ დღეს, როგორც ეს Gottfried Leibniz–ის დროს იყო. მაგარმ ყველაზე უფრო შესამჩნევი შრომა, შეასრულა ბრიტანელმა მათემატიკოსმა George Boole–მა 1854 წელს. მის ნაშრომებს მომავალში ეწოდა “ბულის ალგებრა” და სწორედ ეს უდეს საფუძვლად დღევანდელ ციფრულ ელექტრონიკას. მართალია ბულის მერეც იხვეწებოდა ეს სისტემა, მაგრამ “ბულის ალგებრა” გახლავთ ის საძირკველი, რაზეც აღმოცენდა ის სისტემები, რომლებმაც თავისთავად საწყისი დაუდეს ჩვენს დღევანდელი “ციფრული” ყოფაცხოვრებას ( :) ).

და მაინც რა არის ეს ორობითი სისტემა?

ორობითი, იგივე ბინარული სისტემა არის რიცხვების, სიმბოლოებისა და ანბანის ასოების ჩაწერა მხოლოდ ორი ციფრის გამოყენებით 0 და 1. ანუ ამ სისტემაში 0 და 1 გარდა, ვერანაირ აღმნიშვნელ სიმბოლოს ვერ შეხვდებით. განვიხილოთ მაგალითი: ავიღოთ ციფრი 1, მისი ორობითი მნიშვნელობა იქნება 1, ახლა ავიღოთ ციფრი 2, მისი ორობითი მნიშვნელობა იქნება 10, ანუ არა ათი არამედ 1 და ნული, 3 –> 11, 4 –>100, 5 –>101, 6 –>110, 7 –> 111, 8 –> 1000, 9 –> 1001, 10–>1010, 11–>1011, 12–>1100 და. ა.შ. ანუ 1–ს ემატება ნული, ყოველი მომდევნო თანრიგით გაზრდისას, ხოლო როცა ადგილი შეივსება ერთიანებით, თანრიგის შემდგომი მომატებისას, ხდება ამ ერთიანების გერთიანება და ბოლოში მიეწერება ორი ნული, ანუ რამდენი ერთიანიც იყო, თუ იყო ვთქვათ 15 ერთიანი, მაშინ შემდგომი ბინარული კოდი იქნება ერთი “გაერთიანებული” ერთიანი და 15 ნულიანი. შემდგომი ზრდისას ეს ნულიანებიც ჩანაცვლდება ისევ ერთით, ისევ და ისევ თანრიგის შემდგომი ერთით მომატებისას და ა.შ. ანუ თუ ციფრი 2 ბინარულ კოდში აღინიშნება 10, ე.ი 3 იქნება 11, ანუ ის ნულიანი ჩანაცვლდა ერთიანით. მაშინ 4 როგორღა ჩაიწერება? 3–ში ხომ შეივსო ყველა ადგილი ერთიანით? უბრალოდ, მოხდება ამ ერთიანების “გაერთიანება”, დაიწერება ერთი ერთიანი და ორი ნულიანი, ანუ იმდენი რამდენიც გაერთიანებამდე იყო ერთიანი, მივიღებთ 100–ს.

ვთქვათ გვაქვს რიცხვი 44; ორობით კოდში ეს რიცხვი გამოისეხება ასე 101100. ვნახოთ როგორ ხდება ჩაწერა ანუ კონვერტირება ათობითი სისტემიდან (44) ორობით სისტემაში (101100); ამისათვის გამოიყენება შემდეგი ფორმულა: x-ით აღვნიშნოთ 0, ხოლო y-ით 1, * აღნიშნავს გამრავლებას, ხოლო ^ ხარისხში აყვანას, ციფრების დანომვრა ხდება მარჯვნიდან მარცხნივ, ხოლო ფორმულაში ჯერ იწერება ყველაზე მარცხენა ციფრი, შემდგომ კი მის გვერდით მდგარი ციფრები მარცხნიდან მარჯვნივ. ფორმულა იქნება:

[y ან x*2^y-ის ან x-ის რიგითი ნომერი მარჯვნიდან მარცხნივ–1]+[შემდგომი x ან y*2^x-ის ან y-ის რიგითი ნომერი მარჯვნიდან მარცხნივ-1 (როგორც ხვდებით ის ერთ თანრიგით პატარა იქნება ვიდრე წინა ხარისხი)]+[ … და ა.შ. ანუ ეხლა დავწეროთ კონკრეტული, ზედა მაგალითის მიხედვით, ე.ი. გვაქვს ორობით კოდში ჩაწერილი ათობითი სისტემის რიცხვი 44, რომელიც ასე გამოიყურება 101100, მაშინ ზემოთქმულიდან გამომდინარე ფორმულა იქნება:

[1*2^5]+[0*2^4]+[1*2^3]+[1*2^2]+[0*2^1]+[0*2^0]=

[1*32]+[0*16]+[1* 8]+[1*4]+[0*2]+[0*1]=

32+0+8+4+0+0= 44

ესეც ასე :) სულაც არაა ძნელი :) ასევე ხდება ალფაბიტის კოდირება, ოღონდ მათ წინ ყოველთვის ნულიანი უძღვით:

binary code

ვთქვათ როგორ იქნება CERN-ი ბინარულად: აი, ასე 01000011010001010101001001001110, ანუ C-01000011 E-01000101 R-01010010 N-01001110.

წყარო:samecniero.net

მსგავსი ამბები

Back to top button