זה נקרא פעולות על סיביות.
הסיביות זה סדרה של בולאינים - כן/לא.
כשרוצים לתת הרבה אופציות לקבוצת בתים אחת (בית זה 8 סיביות) משתמשים בEnum מיוחד שמאפשר לתת ריבוי ערכים של כן לא (8 לכל בית).
(כתבתי על זה בעבר פה: http://tchumim.com/post/1236).
כדי לדעת עם סיבית דלוקה, כלומר אפשרות אחת פעילה או כבוייה, אי אפשר להשוות ישירות לערך הרצוי (FileAttributes.Directory), כי גם אם הם שווים בערך הההוא ספציפית התוצאה תהיה שהם אינם שווים בגלל אפשרויות אחרות שדלוקות או מכובות.
לדוגמה:
0 0 - האם לקריאה בלבד? בשתי המקרים לא.
1 0 - מסותר
0 0 - מערכת
0 0
1 1 - תיקיה
...
זה דוגמה שהעמודה הראשונה זה הקובץ והשניה זה האפשרות תיקיה בלבד דלוקה (FileAttributes.Directory). השוואה בינהם תניב שלילי בגלל האפשרות מוסתר שדלוקה במקור. מה שאנחנו רוצים זה לבודד את הדיקה רק על האפשרות תיקיה האם היא דלוקה, איך נבדוק זאת?
אז פעולת הAND (יש גם OR, XOR, NOT) עושה ככה, היא מחברת את שתי העמודות - מדליקה רק אם בשתיהם היה דלוק. זה מאפשר לבדוק את כל האוסף כולו כי כל האפשרויות הלא רלוונטיות סוננו ע"י הAND.
פורסם במקור בפורום CODE613 ב03/04/2014 14:59 (+03:00)