facebook pixel מדריך: פירוט שפת תכנות - Bitwise NOT (~) - www.4project.co.il
Main logo www.4project.co.il
כל הרכיבים לפרוייקט שלכם
עגלת קניות

העגלה ריקה

פירוט שפת תכנות - Bitwise NOT (~)


2022-06-14 11:02:50
פעולת NOT על סיביות בשפת C/C++ מסומנת  ע"י סימן טילדה (tilde) ~. בשונה מפעולות & ו-|, פעולת NOT על סיביות מתבצעת על אופרנד (operand) אחד הרשום מימינו. פעולה זו הופכת כל סיבית לערך הנגדי שלו, 0 הופך ל-1 ו-1 הופך ל-0. לדוגמה:
קוד: בחר הכל
0  1    operand1

----------
1  0   ~ operand1

int a = 103;    // binary:  0000000001100111
int b = ~a;     // binary:  1111111110011000 = -104

אולי תופתעו לראות מספר שלילי 104- כתוצאה של פעולה זו. זה קורה בגלל שהסיבית הגבוהה ביותר (השמאלית) במשתנה מסוג מספרים שלמים int נקראת גם סיבית סימן. כאשר הסיבית הגבוהה ביותר בעלת ערך 1, המספר מפוענח כמספר שלילי. מספרים השליליים מיוצגים בשיטת משלים ל-2 (two's complement). לפרטים נוספים ראו מאמר של Wikipedia על משלים ל-2.
יהיה מעניין לציין שלכל מספר שלם בערך X, פעולת X~ תהפוך אותו לערך X-1-.
לפעמים היפוך של סיביות במספרים מסוג signed integer יכול לגרום להפתעות לא רצויות.


ראו גם:

פירוט שפת תכנות לסביבת Arduino


עמוד זה הוא תרגום של Bitwise NOT (~) לפי רישיון Creative Commons Attribution-ShareAlike 3.0.