fb pixel
გამოიწერე YouTube-ის არხიyoutube logoგამოწერა
val-do.com-ის ლოგო
კურსებიბლოგიხ.დ.კ.წესებიკონტაქტიკონვერტორები

კურსებიბლოგიხ.დ.კ.წესებიკონტაქტიკონვერტორები
შესვლა
  1. მთავარი
  2. კურსები
  3. ჯავასკრიპტის კურსი
  4. JavaScript-ის bitwise (ბიტვაიზ) ოპერატორები
JavaScript-ის bitwise (ბიტვაიზ) ოპერატორები

JavaScript-ის bitwise (ბიტვაიზ) ოპერატორები

დღევანდელ გაკვეთილში ვისაუბრებთ, თუ რა არის და რაში გამოიყენება ჯავასკრიპტში ე.წ. bitwise ოპერატორები, სამწუხაროდ ამ ოპერატორების შესახებ დამწყებმა დეველოპერებმა არც ისე კარგად იციან.

მე შევეცდები მაქსიმალურად დეტალურად ავხსნა, თუ როგორ მუშაობს ეს ოპერატორები შესაბამისი მაგალითების გამოყენებით.

როგორ ინახება ინფორმაცია კომპიუტერში?

როგორც იცით კომპიუტერს მხოლოდ 2 რიცხვის გაგება შეუძლია, ესენია 0 და 1. შესაბამისად კომპიუტერი ჩვენგან განსხვავებით იყენებს თვლის ორობით სისტემას 0-ებისგან და 1-ებისგან შემდგარს.

ჯავასკრიპტი იყენებს 32 ბიტიან სისტემას, 1 ბიტში ინახება მხოლოდ 1 ან 0, მაგალითისთვის თუ ჩვენ გვინდა, რომ რიცხვი 2 დავაკონვერტიროთ ორობით სისტემაში, რომელიც შედგება 32 ბიტისგან, ის გამოიყურება შემდეგნაირად: 00000000 00000000 00000000 00000010.
თუ გაინტერესებთ, თუ რა ფორმულით შეგიძლიათ ათობითი სისტემიდან ორიბითში კონვერტაცია შეგიძლიათ გაეცნოთ მოცემულ ბმულზე მითითებულ ინფორმაციას.

Bitwise ლოგიკური ოპერატორები ჯავასკრიპტში

ჯავასკრიპტში გვაქვს 7 bitwise ოპერატორი, რომლებიც საშუალებას გვაძლევს ორობითი სისტემის დონეზე განვახორციელოთ ლოგიკური ოპერაციები.

ოპერატორი

სახელი

აღწერა

&

AND

ბიტს გადააქცევს 1-ად თუ ორივე ბიტის მნიშვნელობებია 1-ია

|

OR

ბიტს გადააქცევს 1-ად თუ ორი ბიტიდან 1 ბიტის მნიშვნელობა 1-ია, ან ორივეს მნიშვნელობა 1-ია

^

XOR

ბიტს გადააქცევს 1-ად თუ ორი ბიტიდან მხოლოდ ერთ-ერთის მნიშვნელობაა 1

~

NOT

შეაბრუნებს ბიტს 0-ს 1-ად და პირიქით

<<

Zero fill left shift

ბიტებს წააჩოჩებს მარჯვნიდან მარცხნივ და მიამატებს შესაბამისი რაოდენობის 0-ს

>>

Signed right shift

ბიტებს წააჩოჩებს მარცხნიდან მარჯვნივ და მიამატებს უკიდურესი მარცხენა ბიტის მნიშვნელობას

>>>

Zero fill right shift

ბიტებს წააჩოჩებს მარცხნიდან მარჯვნივ და მიამატებს 1-ს

ქვემოთ შევეცდები მაქსიმალურად გასაგებად ავხსნა თუ როგორ მუშაობს თითული ოპერატორი ჯავაკსრიპტში პრაქტიკული მაგალითების გამოყენებით.

მოცემული მაგალითისთვის გამოვიყენოთ 2 მარტივი რიცხვი ათობითი სისტემიდან ესენია 5 და 1.

პ.ს. არ დაგვავიწყდეს, რომ ეს რიცხვები ათობითი სისტემიდანაა და ჯერ არ დაგვიკოვერტირებია ორობითში.

როგორც ზემოთ ავღნიშნეთ ჯავასკრიპტი ოპერაციებისთვის იყენებს 32 ბიტს, სადემონსტრაციოთ მაგალითებში გამოვიყენებთ 8 ბიტიან სისტემას ნაცვლად 32-ისა.

ქვემოთ მოცემულ ცხრილებში წარმოდგენილია 32-ბიტიდან ბოლო 8 ბიტი ანუ:

0000 0000 0000 0000 0000 0000 0000 0101

ორობითში კოვერტაცია

მას შემდეგ, რაც რიცხვებს 5-ს და 1-ს დავაკონვერტირებთ ორობით სისტემაში, რომელიც გამოსახული გვექნება 8 ბიტით, მათი მნიშვნელობები იქნება შემდეგი:

ათობითი

5

1

ორობითი

0000000101

000000001

Bitwise ოპერატორი AND (და)

მაგალითისთვის გამოვიყენოთ შემდეგი ლოგიკური ოპერატორი (5&1) და გამოვსახოთ ის ცხრილის სახით.

5-ის ორობითი მნიშვნელობა

0

0

0

0

0

1

0

1

1-ის ორობითი მნიშვნელობა

0

0

0

0

0

0

0

1

მიღებული მნიშვნელობა 10-ობით სისტემაში იქნება 1

0

0

0

0

0

0

0

1

Bitwise ოპერატორი OR (ან)

მაგალითისთვის გამოვიყენოთ შემდეგი ლოგიკური ოპერატორი (5 | 1) და გამოვსახოთ ის ცხრილის სახით.

5-ის ორობითი მნიშვნელობა

0

0

0

0

0

1

0

1

1-ის ორობითი მნიშვნელობა

0

0

0

0

0

0

0

1

მიღებული მნიშვნელობა 10-ობით სისტემაში იქნება 5

0

0

0

0

0

1

0

1

Bitwise ოპერატორი XOR

მაგალითისთვის გამოვიყენოთ შემდეგი ლოგიკური ოპერატორი (5 ^ 1) და გამოვსახოთ ის ცხრილის სახით.

5-ის ორობითი მნიშვნელობა

0

0

0

0

0

1

0

1

1-ის ორობითი მნიშვნელობა

0

0

0

0

0

0

0

1

მიღებული მნიშვნელობა 10-ობით სისტემაში იქნება 4

0

0

0

0

0

1

0

0

Bitwise ოპერატორი NOT

მაგალითისთვის გამოვიყენოთ შემდეგი ლოგიკური ოპერატორი (~5) და გამოვსახოთ ის ცხრილის სახით.

5-ის ორობითი მნიშვნელობა

0

0

0

0

0

1

0

1

მიღებული მნიშვნელობა 10-ობით სისტემაში იქნება -6

1

1

1

1

1

0

1

0

Bitwise ოპერატორი << (Zero fill left shift)

მაგალითისთვის გამოვიყენოთ შემდეგი ლოგიკური ოპერატორი (5<<1) და გამოვსახოთ ის ცხრილის სახით.

5-ის ორობითი მნიშვნელობა

0

0

0

0

0

1

0

1

1-ის ორობითი მნიშვნელობა

0

0

0

0

0

0

0

1

მიღებული მნიშვნელობა 10-ობით სისტემაში იქნება 10

0

0

0

0

1

0

1

0

როგორც ცხრილში მოყვანილ მაგალითში ჩანს, ორობით კოდს უკიდურესი მარჯვენა მხრიდან მიემატა 0 ხოლო უკიდურესი მარცხნიდან მოაკლდა 0
// 0000 0101 = 5 ათობით სისტემაში
// (*)0000 101(0) = 10 ათობით სისტემაში

Bitwise ოპერატორი >> (Signed right shift)

მაგალითისთვის გამოვიყენოთ შემდეგი ლოგიკური ოპერატორი (5>>1) და გამოვსახოთ ის ცხრილის სახით.

5-ის ორობითი მნიშვნელობა

0

0

0

0

0

1

0

1

1-ის ორობითი მნიშვნელობა

0

0

0

0

0

0

0

1

მიღებული მნიშვნელობა 10-ობით სისტემაში იქნება 2

0

0

0

0

0

0

1

0

ცხრილში მოყვანილი მაგალითიდან ვხედავთ, რომ ორობითი კოდის უკიდურეს მარცხენა მხარეს დაემატა 0 ხოლო უკიდურესმა მარცხენა მხარემ წაიჩოჩა მარჯვნივ და არსებული 1 ამოვარდა სისტემიდან
// 0000 0101 = 5 ათობით სისტემაში
// (0)000 10(*) = 2 ათობით სისტემაში

მოცემული ოპერატორი განსხვავებულად იქცევა უარყოფითი რიცხვების შემთხვევაში მოდი მაგალითისთვის მოვიყვანოთ შემდეგი შედარება (-5>>1) ამ რიცხვის

-5-ის ორობითი მნიშვნელობა

1

1

1

1

1

0

1

1

1-ის ორობითი მნიშვნელობა

0

0

0

0

0

0

0

1

მიღებული მნიშვნელობა 10-ობით სისტემაში იქნება -3

1

1

1

1

1

1

0

1

იმ შემთხვევაში თუ უკიდურეს მარცხენა ჩანაწერში გვაქვს 1 ჩაემატება 1, წინააღმდეგ შემთხვევაში 0
// 1111 1011 = -5 ათობით სისტემაში
// (1)111 101(*) = -3 ათობით სისტემაში

Bitwise ოპერატორი >>> (Zero fill right shift)

მაგალითისთვის გამოვიყენოთ შემდეგი ლოგიკური ოპერატორი (-5>>>1) და გამოვსახოთ ის ცხრილის სახით.

მოცემული ოპერატორი ზუსტად იგივენაირად იქცევა როგორც >> ოპერატორი, მაგრამ აქვს 1 განხსვავება, რომელიც შეეხება უარყოფით რიცხვებს.

ანუ ნებისმიერ შემთხვევაში მარცხნიდან ამატებს 0-ს ხოლო მარჯვნიდან ჩააჩოჩებს შესაბამისი რაოდენობის ბიტით

-5-ის ორობითი მნიშვნელობა

1

1

1

…

1

1

0

1

1

1-ის ორობითი მნიშვნელობა

0

0

0

…

0

0

0

0

1

მიღებული მნიშვნელობა 10-ობით სისტემაში იქნება 2147483645

0

1

1

…

1

1

1

0

1


კურსში შემავალი თემები

🔗 js🔗 javascript

დამატებითი რესურსები

  • Telegram
  • Discord

სხვა კატეგორიები

შეისწავლეთ ვებდეველოპმენტის ენები სრულიად უფასოდ, ისეთები როგორებიცაა Javascript, HTML, CSS და კიდევ სხვა მრავალი ენა

HTML, CSS-ის სა...

HTML, CSS-ის საწყისი კურსი, დამწყებთათვის (deprecated - მოძველებული)

ჯავასკრიპტის კუ...

ჯავასკრიპტის კურსი

JavaScript-ის D...

JavaScript-ის DOM-ის კურსი

TypeScript-ის კ...

TypeScript-ის კურსი

Angular-ის კურს...

Angular-ის კურსი

HTML, CSS-ის კუ...

HTML, CSS-ის კურსი

Reactjs-ის კურს...

Reactjs-ის კურსი დამწყებთათვის

ალგორითმები...

ალგორითმები

Node.js-ის კურს...

Node.js-ის კურსი

Dart-ის კურსი...

Dart-ის კურსი

C პროგრამირების...

C პროგრამირების ენის საფუძვლები

ბოლოს დაწერილი ბლოგები პროგრამირებაზე

ქვემოთ მოცემულია უახლესი 3 ბლოგი პროგრამირების თემატიკასთან დაკავშირებით

როგორ ინახება ი...

როგორ ინახება ინფორმაცია. რა არის Bit და Byte?

რატომ არის კომფ...

რატომ არის კომფორტული სამუშაო ოთახი აუცილებელი კოდის წერისა და პროდუქტიული მუშაობისთვის?

რატომ ვერ პოულო...

რატომ ვერ პოულობენ ჯუნიორები სამსახურს?

  • რა არის ჯავასკრიპტი (javascript)?
  • ცვლადები ჯავასკრიპტში (JavaScript variables)
  • JavaScript-ის მონაცემთა ტიპები string, number
  • JavaScript-ის კომენტარები
  • JavaScript-ის მონაცემთა ტიპი ობეიქტი (object)
  • JavaScript-ის მონაცემთა ტიპი მასივი (Array)
  • JavaScript-ის ფუნქცია, როგორ მუშაობს ის?
  • JavaScript-ის ანონიმური ფუნცქცია
  • JavaScript-ის arrow function
  • JavaScript-ის მონაცემთა ტიპი boolean
  • JavaScript-ის შედარებითი და ლოგიკური ოპერატორები
  • JavaScript-ის პირობითი ოპერატორები, if() else if() else
  • JavaScript-ის switch ოპერატორი
  • JavaScript-ის for ციკლი (loop)
  • JavaScript-ის for...in ციკლი
  • JavaScript-ის for...of ციკლი
  • JavaScript-ის while და do while ციკლები
  • JavaScript-ის break და continue ოპერატორები
  • JavaScript-ის foreach ციკლი
  • JavaScript-ის სახელების შეთანხმებები
  • JavaScript-ის მეთოდი vs ფუნქცია
  • JavaScript-ის Set მეთოდი
  • JavaScript-ის კლასები, ნაწილი პირველი
  • რა არის ჯეისონი (JSON)
  • JavaScript-ის კლასები, ნაწილი მეორე
  • JavaScript-ის მოდულები
  • ობიექტის დესტრუქტურიზაცია (object destructuring)
  • რა არის callback ფუნქცია ჯავასკრიპტში
  • ჯავასკრიპტის მასივის მეთოდები, ნაწილი პირველი
  • ჯავასკრიპტის მასივის მეთოდები, ნაწილი მეორე
  • ჯავასკრიპტის filter() მეთოდი
  • ასინქრონული ჯავასკრიპტი, JavaScript Promises
  • async await, ასინქრონული ჯავასკრიპტი
  • fetch api ჯავასკრიპტში
  • მასივის map() მეთოდი
  • მასივის reduce() მეთოდი
  • localStorage ჯავასკრიპტში
  • Spread ოპერატორი ჯავასკრიპტში
  • rest ოპერატორი ჯავასკრიპტის ფუნქციაში
  • რა არის indexOf() მეთოდი ჯავასკრიპტში?
  • რა არის charAt() მეთოდი ჯავასკრიპტში?
  • რა არის push() მეთოდი ჯავასკრიპტში?
  • რა არის pop() მეთოდი ჯავასკრიპტში?
  • რა არის unshift() მეთოდი ჯავასკრიპტში?
  • რა არის shift() მეთოდი ჯავასკრიპტში?
  • Ternary ოპერატორი ჯავასკრიპტში (JavaScript)
  • JavaScript-ის bitwise (ბიტვაიზ) ოპერატორები
  • Nullish Coalescing Operator (??) ჯავასკრიპტში ქართულად
  • JavaScript-ის პრიმიტიული ტიპები (Primitive types)
  • პრიმიტიული და რეფერენს ტიპების შედარება
  • JavaScript-ის closures-ები
  • JSDocs - დოკუმენტაციის წერა ჯავასკრიპტში
პროგრამირების კურსები
HTML, CSSJavaScriptTypeScriptAngularReactJSNodeJSC
გამომყევი
InstagramFacebookLinkedinTelegramDiscordYoutubeGithub

© val-do.com 2026 წელი - ყველა უფლება დაცულია

ვერსია 0.1.52