بیت به بیت (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)
}
گام های عملی
- دو عدد انتخاب کن و باینری شان را ببین.
- روی آن ها &، |، ^ را امتحان کن.
- با << و >> مقدار را جابه جا کن.
نکته: عملگرهای بیتی در کارایی مفیدند. همیشه نتیجه را با مثال کوچک چک کن.
جمع بندی سریع
- عملگرهای بیتی روی هر بیت کار می کنند.
- & فقط با دو بیت یک، یک می دهد.
- | با یکی هم یک می شود.
- ^ فقط با تفاوت یک می دهد.
- << چپ می برد، >> راست می برد.
برای مرور منطقی، به عملگرهای منطقی برو. سپس فصل شرط ها را ببین. همچنین صفحه عملگرهای بیتی را نشانک کن.