PDA

View Full Version : سوال: عملگرهای دستکاری بیتی



Beginner Programmer
سه شنبه 05 آذر 1392, 20:31 عصر
سلام دوستان
میشه درباره عملگرهای دستکاری بیتی یه توضیحی بدید؟اصلا از نحوه کارکردشون سر در نمیارم!!!

MMSHFE
سه شنبه 05 آذر 1392, 22:39 عصر
کدومشون رو مشکل دارین؟

& عملگر and بیتی هست یعنی دو عدد رو بیت به بیت با هم and میکنه و در عدد حاصل، فقط بیتی میشه 1 که بیتهای متناظرش توی هر دو عدد اولیه، 1 باشه. مثال: 4 = 6 & 5
101
110
-----
100

| عملگر or بیتی هست یعنی دو عدد رو بیت به بیت با هم or میکنه و در عدد حاصل، فقط بیتی میشه 0 که بیتهای متناظرش توی هر دو عدد اولیه، 0 باشه. مثال: 11 = 9 | 10
1010
1001
-----
1011

^ عملگر xor هست یعنی دو عدد رو بیت به بیت با هم xor میکنه و در عدد حاصل، فقط بیتی میشه 1 که بیتهای متناظرش توی دو عدد اولیه با هم فرق داشته باشن. مثال: 3 = 9 ^ 10
1010
1001
-----
0011

~ عملگر not بیتی هست یعنی بیتهای عدد رو برعکس میکنه. مثال: 2 = 5~
101
----
010

>> عملگر شیفت به چپ هست که بیتهای عدد اول رو به تعداد عدد دوم، به چپ انتقال میده و از راست، صفر وارد میکنه (هربار، عدد دوبرابر میشه). مثال: 20 = 2 >> 5
101
-----
10100

<< عملگر شیفت به راست هست که بیتهای عدد اول رو به تعداد عدد دوم، به راست انتقال میده رقم اول از سمت راست رو میندازه دور و از چپ، صفر وارد میکنه (هربار، عدد نصف میشه). مثال: 1 = 2 << 5
101
-----
001