عملگر های بیتی

آموزش کامپیوتر ، برنامه نویسی ،
98 بازدید
عملگر های بیتی
در برنامه نویسی عملگر هایی وجود دارد که اعداد را با ایجاد تغییر در حالت دو دویی آن ها تغییر می دهد. به این عملگر ها ، عملگر های بیتی گفته می شود.

ما در برنامه نویسی ، عملگر های ساده ای مثل جمع ، منها ، ضرب و تقسیم و ... داریم. به جز این عملگر های ساده که عملگر های پایه ی ریاضی هستند ، عمگلر های دیگری هم وجود دارند که کار آن ها با توجه به اعداد دو دویی (binary) است.

کاربرد عملگر های بیتی

کاربرد اصلی عملگر ها همین انجام اعمال بیتی روی اعداد است. یک برنامه نویس می تواند با استفاده از این عملگر های روی بیت های کاراکتر های برنامه ی خود تغییراتی ایجاد کند و به این شکل آن را از دید دیگران مخفی کند (مبهم یا رمزگذاری کند) (برای مطالعه درباره ی obfuscation و encryption اینجا کلیک کنید)

عملگر های بیتی (bitwise operators)

در بیشتر زبان های برنامه نویسی ، این عملگر ها که در پایین لیست شده اند ، وجود دارند. (a و b عدد هستند)

مثال

نام

نتیجه

a & b

And

بیت هایی که هم در a و هم در b برابر 1 هستند.

a | b

Or (یا شامل و)

بیت هایی که یا در a یا در b و یا در هر دو برابر 1 هستند.

a ^ b

Xor (فقط یا)

بیت هایی که یا در a یا در b برابر 1 هستند.

~ a

Not

بیت هایی که 1 هستند 0 می شوند و 0 ها 1 می شوند.

a << b

Shift left

بیت های a به اندازه ی b تا به سمت چپ می روند. (یعنی توان دو)

a >> b

Shift right

بیت های a به اندازه ی b تا به سمت راست می روند. (یعنی جذر)

در کامپیوتر تمام اطلاعات به صورت 0 و 1 بررسی می شوند. گاهی اوقات در برنامه نویسی لازم است که بر اساس این 0 و 1 ها (اعداد دو دویی) کار هایی انجام شود. عملگر های بالا می توانند این امکان را به برنامه نویس بدهند که تغییرات بالا روی اعداد پیاده سازی کنند. برای فهم بهتر مثال های زیر را ببینید:

و ( AND )

مثال 1:

<<<code>>>

101 = 5

011 = 3

001 = 1

<<</code>>>

 مثال 2:

<<<code>>>

1101001 = 105

1100100 = 100

1100000 = 96

<<</code>>>

یا شامل و ( OR )

مثال 1:

<<<code>>>

110 = 6

101 = 5

111 = 7

<<</code>>>

مثال 2:

<<<code>>>

1100100 = 100

0110010 = 50

1110110 = 118

<<</code>>>

یا مانع و ( XOR )

مثال 1:

<<<code>>>

00101 = 5

10111 = 23

10010 = 18

<<</code>>>

مثال 2:

<<<code>>>

1110000001 = 897

0000110100 = 52

1110110101 = 949

<<</code>>>

NOT

مثال:

<<<code>>>

a   = 00000000000000000000000000000101 = 5

~ a = 11111111111111111111111111111010 = -6

<<</code>>>

shift left

مثال:

<<<code>>>

a      = 000101 = 5

a << 3 = 101000 = 40

<<</code>>>

shift right

مثال:

<<<code>>>

a      = 000101 = 5

a >> 2 = 000001 = 1

<<</code>>>

رمز تمام فایل های فشرده
رمز فایل فشرده است.