XOR שאלה

mmhbk

New member
XOR שאלה

אני מממש מערכת RAID 5 ב-C ואני צריך לחשב שדה זוגיות בעזרת הפעלת XOR בין כמה מחרוזות. יש פונקציה ב-C שעושה את זה או שאני צריך לממש אותה בעצמי? תודה
 

DNile

New member
אתה צריך לממש בעצמך.

זה לא צריך לקחת לך יותר מכמה שורות בודדות, אני בטוח שאתה תצליח.
 

mmhbk

New member
אז יש לי עוד שאלה

יש לי שני מערכי char ואני צריך להפעיל ביניהם xor. כך תא במערך נחשב לביט ואני הולך תא-תא ועושה xor. זה בסדר להתיחס אל תוכן התא כאל int ? אני יכול להיות בטוח שהערך בתא הוא 0 או 1 תמיד?
 

VoodooKid

New member
בדיקת המערך

זה תלוי מי הכניס את הנתונים למערך. אם אתה הכנסתה ואתה יודע בוודאות שיש שמה רק 0 או 1 אז אל תבדוק אבל אם אתה לא בטוח ויכול להיות שיש שמה ערכים שונים אז תבדוק את התאים לפני פעולת ה XOR
 

mmhbk

New member
אני הכנסתי

אבל הכנסתי לשם טקסט ועכשיו אני צריך לעשות xor.
 

VoodooKid

New member
אני לא מבין את הבעיה שלך כנראה.

תסביר בדיוק מה אתה רוצה לעשות זה יהיה יותר קל לענות לך לעניין.
 

mmhbk

New member
טוב

אז יש לי קובץ סדרתי שכתוב על דיסק מסוים ואני בונה מערכת RAID5. אני מעתיק חלקים מהקובץ לתוך מערך של char וכותב אותם לדיסקים אחרים. כשאני כותב את המערך לדיסק חדש, אני צריך לעדכן את מחרוזת הזוגיות. הנוסחה היא : new_parity = old_parity xor new_data xor old_data. בשביל החישוב הזה אני צריך bitwize xor.
 

vinney

Well-known member
XOR הוא bitwise בהגדרה

אתה עושה i ^ j אתה מקבל את תוצאת XOR של ביט ב i עם ביט מתאים ב j לכל ביט. כמובן ששני האופרנדים צריכים להיות מאותו טיפוס. מה השאלה?
 

DecayCell

New member
למה?

בפעם האחרונה שבדקתי XOR הייתה פעולה לוגית חוקית לגמרי...
 

DecayCell

New member
ממתי מיקרוסופט הם המקורות?

האופרטור ^ הוא bitwise ב-C (ועוד שפות, אני מניח) - אין ספק. אבל פעולת XOR, כמו כל שאר הפעולות הלוגיות, הייתה קיימת הרבה לפני שמישהו חשב להמציא את שפות התכנות, ולהעניק להן את המשמעות הטכנית שמיוחסת להן כיום (עבודה עם סיביות)...
 

DNile

New member
מיקרוסופט הם אחלה מקור

בעיקר הMSDN. אל תזלזל בו לעולם. לעניין האופרטור, מה אתה כזה קטנוני תגיד לי? אם אתה בכלל רוצה לצאת קטנוני, אז בוא נדבר על קבוצות של איברים, ועל פעולות של הפרש סימטרי ביניהן... השאלה נשאלה לגבי שפת C, התשובה ניתנה בהתאם.
 

vinney

Well-known member
הוא שאל על XOR ב C, לתשומת לבך

ומה לעשות, MSDN הוא אחד המקורות היותר טובים שיש.
 
למעלה