XOR

צבתות

New member
XOR

איך מוגדר XOR על שני ערכים שלמים? למשל
5 xor 3​
? אני יודע שבבינארי זה ממומש ע"י
a xor b = a*not(b) + b*not(a)​
אבל בשלמים?
 

voguemaster

New member
בדיוק אותו דבר

רק עבור כל ביט וביט. לכן קוראים לזה bitwise XOR. עקרונית ה"אלגוריתם" של ה-XOR מופעל על כל ביט מול הביט המתאימה במשתנה השני. כמובן שהם צריכים להיות באותו גודל אחרת הקומפיילר ייצעק
 

צבתות

New member
מקבלים...

מקבלים את החיבור מודולו מספר הביטים, נכון? ז"א ש-
40 xor 58 = 40+58 mod 2^6 = 34 ?​
זה בהנחה שמספר הביטים הוא 6 (מספיק לייצג עד 64).
 
לא לגמרי...

כל ביט - במודולו 2: 40 עשרוני זה 101000 בינארי, 58 עשרוני זה 111010 בינארי, ה-XOR שלהם: 010010 בינארי, שזה 18 עשרוני.
 
למעלה