GO

GO — بیت به بیت (Bitwise)

آخرین بروزرسانی: 1404/08/14

بیت به بیت (Bitwise)

عملگرهای بیتی (Bitwise Operators) روی عددهای دودویی کار می کنند. دودویی یعنی نمایش عدد با صفر و یک. با این عملگرها، هر بیت جداگانه بررسی می شود. مثل بررسی چراغ های یک ردیف، یکی یکی.

فهرست عملگرهای بیتی Go

در Go این عملگرها را داریم: AND (&)، OR (|)، XOR (^)، شیفت چپ (<<)، و شیفت راست (>>). هرکدام روی بیت ها اثر مستقیم می گذارند.

AND (&)

اگر هر دو بیت یک باشند، نتیجه یک می شود. مثل امتحان و تکلیف هر دو انجام شده.

package main
import (
  "fmt"
)

func main() {
  var x = 6
  var y = 3
  fmt.Println(x & y)
}

مشاهده در ادیتور

OR (|)

اگر یکی از بیت ها یک باشد، نتیجه یک می شود. مثل قبولی با یک امتیاز اضافی.

package main
import (
  "fmt"
)

func main() {
  var x = 6
  var y = 3
  fmt.Println(x | y)
}

مشاهده در ادیتور

XOR (^)

اگر فقط یکی از بیت ها یک باشد، نتیجه یک می شود. مثل پاسخ متفاوت یکی از دو دوست.

package main
import (
  "fmt"
)

func main() {
  var x = 6
  var y = 3
  fmt.Println(x ^ y)
}

مشاهده در ادیتور

شیفت چپ (<<)

بیت ها را چپ می برد و از راست صفر وارد می کند. مثل جا دادن صفرهای تازه سمت راست.

package main
import (
  "fmt"
)

func main() {
  var x = 5
  fmt.Println(x << 2)
}

مشاهده در ادیتور

شیفت راست (>>)

بیت ها را راست می برد و کپی بیت چپ را وارد می کند. بیت های راست می افتند.

package main
import (
  "fmt"
)

func main() {
  var x = 20
  fmt.Println(x >> 2)
}

مشاهده در ادیتور

گام های عملی

  1. دو عدد انتخاب کن و باینری شان را ببین.
  2. روی آن ها &، |، ^ را امتحان کن.
  3. با << و >> مقدار را جابه جا کن.

نکته: عملگرهای بیتی در کارایی مفیدند. همیشه نتیجه را با مثال کوچک چک کن.

جمع بندی سریع

  • عملگرهای بیتی روی هر بیت کار می کنند.
  • & فقط با دو بیت یک، یک می دهد.
  • | با یکی هم یک می شود.
  • ^ فقط با تفاوت یک می دهد.
  • << چپ می برد، >> راست می برد.

برای مرور منطقی، به عملگرهای منطقی برو. سپس فصل شرط ها را ببین. همچنین صفحه عملگرهای بیتی را نشانک کن.