დღევანდელ გაკვეთილში ვისაუბრებთ, თუ რა არის და რაში გამოიყენება ჯავასკრიპტში ე.წ. bitwise ოპერატორები, სამწუხაროდ ამ ოპერატორების შესახებ დამწყებმა დეველოპერებმა არც ისე კარგად იციან.
მე შევეცდები მაქსიმალურად დეტალურად ავხსნა, თუ როგორ მუშაობს ეს ოპერატორები შესაბამისი მაგალითების გამოყენებით.
როგორც იცით კომპიუტერს მხოლოდ 2 რიცხვის გაგება შეუძლია, ესენია 0 და 1. შესაბამისად კომპიუტერი ჩვენგან განსხვავებით იყენებს თვლის ორობით სისტემას 0-ებისგან და 1-ებისგან შემდგარს.
ჯავასკრიპტი იყენებს 32 ბიტიან სისტემას, 1 ბიტში ინახება მხოლოდ 1 ან 0, მაგალითისთვის თუ ჩვენ გვინდა, რომ რიცხვი 2 დავაკონვერტიროთ ორობით სისტემაში, რომელიც შედგება 32 ბიტისგან, ის გამოიყურება შემდეგნაირად: 00000000 00000000 00000000 00000010.
თუ გაინტერესებთ, თუ რა ფორმულით შეგიძლიათ ათობითი სისტემიდან ორიბითში კონვერტაცია შეგიძლიათ გაეცნოთ მოცემულ ბმულზე მითითებულ ინფორმაციას.
ჯავასკრიპტში გვაქვს 7 bitwise ოპერატორი, რომლებიც საშუალებას გვაძლევს ორობითი სისტემის დონეზე განვახორციელოთ ლოგიკური ოპერაციები.
ქვემოთ შევეცდები მაქსიმალურად გასაგებად ავხსნა თუ როგორ მუშაობს თითული ოპერატორი ჯავაკსრიპტში პრაქტიკული მაგალითების გამოყენებით.
მოცემული მაგალითისთვის გამოვიყენოთ 2 მარტივი რიცხვი ათობითი სისტემიდან ესენია 5 და 1.
პ.ს. არ დაგვავიწყდეს, რომ ეს რიცხვები ათობითი სისტემიდანაა და ჯერ არ დაგვიკოვერტირებია ორობითში.
როგორც ზემოთ ავღნიშნეთ ჯავასკრიპტი ოპერაციებისთვის იყენებს 32 ბიტს, სადემონსტრაციოთ მაგალითებში გამოვიყენებთ 8 ბიტიან სისტემას ნაცვლად 32-ისა.
ქვემოთ მოცემულ ცხრილებში წარმოდგენილია 32-ბიტიდან ბოლო 8 ბიტი ანუ:
0000 0000 0000 0000 0000 0000 0000 0101
მას შემდეგ, რაც რიცხვებს 5-ს და 1-ს დავაკონვერტირებთ ორობით სისტემაში, რომელიც გამოსახული გვექნება 8 ბიტით, მათი მნიშვნელობები იქნება შემდეგი:
მაგალითისთვის გამოვიყენოთ შემდეგი ლოგიკური ოპერატორი (5&1)
და გამოვსახოთ ის ცხრილის სახით.
მაგალითისთვის გამოვიყენოთ შემდეგი ლოგიკური ოპერატორი (5 | 1)
და გამოვსახოთ ის ცხრილის სახით.
მაგალითისთვის გამოვიყენოთ შემდეგი ლოგიკური ოპერატორი (5 ^ 1)
და გამოვსახოთ ის ცხრილის სახით.
მაგალითისთვის გამოვიყენოთ შემდეგი ლოგიკური ოპერატორი (~5) და გამოვსახოთ ის ცხრილის სახით.
მაგალითისთვის გამოვიყენოთ შემდეგი ლოგიკური ოპერატორი (5<<1)
და გამოვსახოთ ის ცხრილის სახით.
// 0000 0101 = 5 ათობით სისტემაში
// (*)0000 101(0) = 10 ათობით სისტემაში
მაგალითისთვის გამოვიყენოთ შემდეგი ლოგიკური ოპერატორი (5>>1)
და გამოვსახოთ ის ცხრილის სახით.
// 0000 0101 = 5 ათობით სისტემაში
// (0)000 10(*) = 2 ათობით სისტემაში
მოცემული ოპერატორი განსხვავებულად იქცევა უარყოფითი რიცხვების შემთხვევაში მოდი მაგალითისთვის მოვიყვანოთ შემდეგი შედარება (-5>>1) ამ რიცხვის
// 1111 1011 = -5 ათობით სისტემაში
// (1)111 101(*) = -3 ათობით სისტემაში
Bitwise ოპერატორი >>> (Zero fill right shift)
მაგალითისთვის გამოვიყენოთ შემდეგი ლოგიკური ოპერატორი (-5>>>1)
და გამოვსახოთ ის ცხრილის სახით.
მოცემული ოპერატორი ზუსტად იგივენაირად იქცევა როგორც >> ოპერატორი, მაგრამ აქვს 1 განხსვავება, რომელიც შეეხება უარყოფით რიცხვებს.
ანუ ნებისმიერ შემთხვევაში მარცხნიდან ამატებს 0-ს ხოლო მარჯვნიდან ჩააჩოჩებს შესაბამისი რაოდენობის ბიტით
შეისწავლეთ ვებდეველოპმენტის ენები სრულიად უფასოდ, ისეთები როგორებიცაა Javascript, HTML, CSS და კიდევ სხვა მრავალი ენა
ქვემოთ მოცემულია უახლესი 3 ბლოგი პროგრამირების თემატიკასთან დაკავშირებით