рдмрд┐рдЯрд╡рд╛рдЗрдЬрд╝ XOR рдХреИрд▓рдХреБрд▓реЗрдЯрд░ рдХреНрдпрд╛ рд╣реИ?
рдмрд┐рдЯрд╡рд╛рдЗрдЬрд╝ XOR (рдПрдХреНрд╕рдХреНрд▓реВрд╕рд┐рд╡ OR) рдХреИрд▓рдХреБрд▓реЗрдЯрд░ рджреЛ рдкреВрд░реНрдгрд╛рдВрдХреЛрдВ рдХреЛ рд▓реЗрдХрд░ рдЙрдиреНрд╣реЗрдВ рдмрд┐рдЯ-рджрд░-рдмрд┐рдЯ рдЬреЛрдбрд╝рддрд╛ рд╣реИред рд╣рд░ рд╕реНрдерд╛рди рдкрд░, рдЬрдм рджреЛрдиреЛрдВ рдЗрдирдкреБрдЯ рдмрд┐рдЯ рдЕрд▓рдЧ-рдЕрд▓рдЧ рд╣реЛрддреЗ рд╣реИрдВ рддреЛ рдЖрдЙрдЯрдкреБрдЯ рдмрд┐рдЯ 1 рд╣реЛрддрд╛ рд╣реИ, рдФрд░ рдЬрдм рджреЛрдиреЛрдВ рдПрдХ рдЬреИрд╕реЗ рд╣реЛрддреЗ рд╣реИрдВ рддреЛ 0 рд╣реЛрддрд╛ рд╣реИред рдпрд╣ рдкреНрд░реЛрдЧреНрд░рд╛рдорд┐рдВрдЧ, рдбрд┐рдЬрд┐рдЯрд▓ рд▓реЙрдЬрд┐рдХ, рдХреНрд░рд┐рдкреНрдЯреЛрдЧреНрд░рд╛рдлрд╝реА рдФрд░ рдПрд░рд░ рдбрд┐рдЯреЗрдХреНрд╢рди рдХреА рд╕рдмрд╕реЗ рдмреБрдирд┐рдпрд╛рджреА рдСрдкрд░реЗрд╢рдиреЛрдВ рдореЗрдВ рд╕реЗ рдПрдХ рд╣реИред
рдЗрд╕рдХрд╛ рдЙрдкрдпреЛрдЧ рдХреИрд╕реЗ рдХрд░реЗрдВ
рдЕрдкрдирд╛ рдкрд╣рд▓рд╛ рдкреВрд░реНрдгрд╛рдВрдХ (A) рдФрд░ рджреВрд╕рд░рд╛ рдкреВрд░реНрдгрд╛рдВрдХ (B) рджрд░реНрдЬ рдХрд░реЗрдВ, рдлрд┐рд░ рд╕рдмрдорд┐рдЯ рдХрд░реЗрдВред рдХреИрд▓рдХреБрд▓реЗрдЯрд░ XOR рдХрд╛ рдкрд░рд┐рдгрд╛рдо рджрд╢рдорд▓рд╡ рдореЗрдВ рджреЗрддрд╛ рд╣реИ, рд╕рд╛рде рд╣реА рдЗрд╕рдХреА рдмрд╛рдЗрдирд░реА рдФрд░ рд╣реЗрдХреНрд╕рд╛рдбреЗрд╕рд┐рдорд▓ рд░реВрдк рднреА рджрд┐рдЦрд╛рддрд╛ рд╣реИ рддрд╛рдХрд┐ рдЖрдк рд╣рд░ рдмрд┐рдЯ рдХреА рдЬрд╛рдБрдЪ рдХрд░ рд╕рдХреЗрдВред рдзрдирд╛рддреНрдордХ рдФрд░ рдЛрдгрд╛рддреНрдордХ рджреЛрдиреЛрдВ рддрд░рд╣ рдХреЗ рдкреВрд░реНрдгрд╛рдВрдХ рд╕реНрд╡реАрдХрд╛рд░ рдХрд┐рдП рдЬрд╛рддреЗ рд╣реИрдВред
рдлрд╝реЙрд░реНрдореВрд▓рд╛ рд╕рдордЭреЗрдВ
рдЕрдзрд┐рдХрддрд░ рдкреНрд░реЛрдЧреНрд░рд╛рдорд┐рдВрдЧ рднрд╛рд╖рд╛рдУрдВ рдореЗрдВ XOR рдХреЛ A ^ B рдФрд░ рдЧрдгрд┐рддреАрдп рд╕рдВрдХреЗрддрди рдореЗрдВ рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рд░реВрдк рдореЗрдВ рд▓рд┐рдЦрд╛ рдЬрд╛рддрд╛ рд╣реИ:
рдПрдХрд▓ рдмрд┐рдЯ рдХреЗ рд▓рд┐рдП рдЯреНрд░реБрде рдЯреЗрдмрд▓ рдЗрд╕ рдкреНрд░рдХрд╛рд░ рд╣реИ: \(0 \oplus 0 = 0\), \(0 \oplus 1 = 1\), \(1 \oplus 0 = 1\), \(1 \oplus 1 = 0\)ред рдпрд╣ рдСрдкрд░реЗрд╢рди рд╣рд░ рдмрд┐рдЯ рдЬреЛрдбрд╝реА рдкрд░ рдЕрд▓рдЧ-рдЕрд▓рдЧ рд▓рд╛рдЧреВ рд╣реЛрддрд╛ рд╣реИред рдПрдХ рдХрд╛рдо рдХрд╛ рдЧреБрдг: \(A \mathbin{\char`\^} A = 0\) рдФрд░ \(A \mathbin{\char`\^} 0 = A\), рдЗрд╕реАрд▓рд┐рдП XOR рдХрд╛ рдЙрдкрдпреЛрдЧ рдорд╛рдиреЛрдВ рдХреА рдЕрджрд▓рд╛-рдмрджрд▓реА (рд╕реНрд╡реИрдк) рдХрд░рдиреЗ рдФрд░ рдлрд╝реНрд▓реИрдЧ рдЯреЙрдЧрд▓ рдХрд░рдиреЗ рдореЗрдВ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред
рд╣рд▓ рдХрд┐рдпрд╛ рдЧрдпрд╛ рдЙрджрд╛рд╣рд░рдг
рдорд╛рди рд▓реАрдЬрд┐рдП A = 12 рдФрд░ B = 10ред рдмрд╛рдЗрдирд░реА рдореЗрдВ, 12 = 1100 рдФрд░ 10 = 1010ред рд╣рд░ рдХреЙрд▓рдо рдХреА рддреБрд▓рдирд╛ рдХрд░реЗрдВ: \(1 \oplus 1 = 0\), \(1 \oplus 0 = 1\), \(0 \oplus 1 = 1\), \(0 \oplus 0 = 0\), рдЬрд┐рд╕рд╕реЗ рдорд┐рд▓рддрд╛ рд╣реИ 0110 = 6ред рдпрд╛рдиреА \(12 \mathbin{\char`\^} 10 = 6\)ред
рдмрд┐рдЯрд╡рд╛рдЗрдЬрд╝ рдСрдкрд░реЗрд╢рди рдХреА рддреБрд▓рдирд╛
рдкреНрд░рддреНрдпреЗрдХ рдмрд┐рдЯрд╡рд╛рдЗрдЬрд╝ рдСрдкрд░реЗрд╢рди рдПрдХ рдмрд╛рд░ рдореЗрдВ рдПрдХ рдмрд┐рдЯ рдкрд░ рдХрд╛рдо рдХрд░рддрд╛ рд╣реИред рдЗрдирдкреБрдЯ рдмрд┐рдЯреНрд╕ \(A\) рдФрд░ \(B\) рдХреЗ рдкреНрд░рддреНрдпреЗрдХ рдЬреЛрдбрд╝реЗ рдХреЗ рд▓рд┐рдП, рдСрдкрд░реЗрд╢рди рдПрдХ рдПрдХрд▓ рдЖрдЙрдЯрдкреБрдЯ рдмрд┐рдЯ рдЙрддреНрдкрдиреНрди рдХрд░рддрд╛ рд╣реИред рдиреАрдЪреЗ рджреА рдЧрдИ рддрд╛рд▓рд┐рдХрд╛ рдЫрд╣ рд╕рдмрд╕реЗ рд╕рд╛рдорд╛рдиреНрдп рдСрдкрд░реЗрд╢рдиреЛрдВ рдХреЗ рд▓рд┐рдП рд╕рдВрдкреВрд░реНрдг рдПрдХрд▓-рдмрд┐рдЯ рд╕рддреНрдп рддрд╛рд▓рд┐рдХрд╛ рджрд┐рдЦрд╛рддреА рд╣реИред XOR (рдПрдХреНрд╕рдХреНрд▓реВрд╕рд┐рд╡ OR, рд▓рд┐рдЦрд╛ рдЧрдпрд╛ \(A \oplus B\)) рдХреЗрд╡рд▓ рддрдм 1 рдЖрдЙрдЯрдкреБрдЯ рдХрд░рддрд╛ рд╣реИ рдЬрдм рджреЛрдиреЛрдВ рдЗрдирдкреБрдЯ рдмрд┐рдЯреНрд╕ рдЕрд▓рдЧ рд╣реЛрдВред
| A | B | AND (A&B) | OR (A|B) | XOR (A^B) | NAND ~(A&B) | NOR ~(A|B) | XNOR ~(A^B) |
|---|---|---|---|---|---|---|---|
| 0 | 0 | 0 | 0 | 0 | 1 | 1 | 1 |
| 0 | 1 | 0 | 1 | 1 | 1 | 0 | 0 |
| 1 | 0 | 0 | 1 | 1 | 1 | 0 | 0 |
| 1 | 1 | 1 | 1 | 0 | 0 | 0 | 1 |
рдзреНрдпрд╛рди рджреЗрдВ рдХрд┐ XOR XNOR рдХрд╛ рд╕рдЯреАрдХ рдкреВрд░рдХ рд╣реИ, рдФрд░ XOR рдмрд┐рд▓реНрдХреБрд▓ рдЙрди рджреЛ рдкрдВрдХреНрддрд┐рдпреЛрдВ рдореЗрдВ 1 рдХреЗ рдмрд░рд╛рдмрд░ рд╣реИ рдЬрд╣рд╛рдВ рдЗрдирдкреБрдЯ рдЕрд╕рд╣рдордд рд╣реИрдВред рдпрд╣ "рдЕрдВрддрд░ рд╕реВрдЪрдХ" рдЧреБрдг рд╣реА XOR рдХреЛ рд╕рдорддрд╛ рдЬрд╛рдВрдЪ, рд╕рд░рд▓ рдПрдиреНрдХреНрд░рд┐рдкреНрд╢рди рдФрд░ рдмрд┐рдЯреНрд╕ рдХреЛ рдЯреЙрдЧрд▓ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЙрдкрдпреЛрдЧреА рдмрдирд╛рддрд╛ рд╣реИред
рд╕рд╛рдорд╛рдиреНрдп рдЗрдирдкреБрдЯ рдЬреЛрдбрд╝реЗ рдореЗрдВ XOR
рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рддрд╛рд▓рд┐рдХрд╛ рдмрд┐рдЯрд╡рд╛рдЗрдЬрд╝ XOR рдСрдкрд░реЗрд╢рди рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рдХрдИ рдкреНрд░рддрд┐рдирд┐рдзрд┐ рдЬреЛрдбрд╝реЗ рдХреЛ рдХрд╛рдо рдХрд░рддреА рд╣реИ, рдкреНрд░рддреНрдпреЗрдХ рдСрдкрд░реЗрдВрдб рдХреЛ рдмрд╛рдЗрдирд░реА рдореЗрдВ рджрд┐рдЦрд╛рддреА рд╣реИ, рдлрд┐рд░ рдкрд░рд┐рдгрд╛рдо рдХреЛ рджрд╢рдорд▓рд╡, рдмрд╛рдЗрдирд░реА рдФрд░ рд╣реЗрдХреНрд╕рд╛рдбреЗрд╕рд┐рдорд▓ рдореЗрдВ рджрд┐рдЦрд╛рддреА рд╣реИред XOR рдмрд┐рдЯ-рджрд░-рдмрд┐рдЯ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ: рджреЛ рдмрд╛рдЗрдирд░реА рд╕рдВрдЦреНрдпрд╛рдУрдВ рдХреЛ рд╕рдВрд░реЗрдЦрд┐рдд рдХрд░реЗрдВ рдФрд░ рдЬрд╣рд╛рдВ рдмрд┐рдЯреНрд╕ рдЕрд▓рдЧ рд╣реЛрдВ, рд╡рд╣рд╛рдВ 1 рдЖрдЙрдЯрдкреБрдЯ рдХрд░реЗрдВред
| A | B | A (рдмрд╛рдЗрдирд░реА) | B (рдмрд╛рдЗрдирд░реА) | A ^ B (рджрд╢рдорд▓рд╡) | A ^ B (рдмрд╛рдЗрдирд░реА) | A ^ B (рд╣реЗрдХреНрд╕) |
|---|---|---|---|---|---|---|
| 5 | 3 | 0101 | 0011 | 6 | 0110 | 0x6 |
| 255 | 15 | 11111111 | 00001111 | 240 | 11110000 | 0xF0 |
| 12 | 12 | 1100 | 1100 | 0 | 0000 | 0x0 |
| 7 | 0 | 0111 | 0000 | 7 | 0111 | 0x7 |
| 10 | 6 | 1010 | 0110 | 12 | 1100 | 0xC |
| -1 | 1 | тАж11111111 | тАж00000001 | -2 | тАж11111110 | 0xтАжFE |
рджреЛ рдкреИрдЯрд░реНрди рдмрд╛рд╣рд░ рдЦрдбрд╝реЗ рд╣реИрдВред рдЬрдм рдПрдХ рдСрдкрд░реЗрдВрдб 0 рд╣реЛ, XOR рджреВрд╕рд░реЗ рдСрдкрд░реЗрдВрдб рдХреЛ рдЕрдкрд░рд┐рд╡рд░реНрддрд┐рдд рд▓реМрдЯрд╛рддрд╛ рд╣реИ (\(7 \oplus 0 = 7\))ред рдЬрдм рджреЛрдиреЛрдВ рдСрдкрд░реЗрдВрдб рд╕рдорд╛рди рд╣реЛрдВ, XOR 0 рд▓реМрдЯрд╛рддрд╛ рд╣реИ (\(12 \oplus 12 = 0\))ред рдирдХрд╛рд░рд╛рддреНрдордХ рдЙрджрд╛рд╣рд░рдг рджреЛ рдХрд╛ рдкреВрд░рдХ рдкреНрд░рддрд┐рдирд┐рдзрд┐рддреНрд╡ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддрд╛ рд╣реИ: \(-1\) рд╕рднреА 1-рдмрд┐рдЯреНрд╕ рд╣реИрдВ, рдЗрд╕рд▓рд┐рдП рдЗрд╕реЗ рдХрд┐рд╕реА рднреА рдорд╛рди рдХреЗ рд╕рд╛рде XOR рдХрд░рдиреЗ рд╕реЗ рд╣рд░ рдмрд┐рдЯ рдлреНрд▓рд┐рдк рд╣реЛ рдЬрд╛рддрд╛ рд╣реИ (рдпрд╣ рдмрд┐рдЯрд╡рд╛рдЗрдЬрд╝ NOT рдХреЗ рдмрд░рд╛рдмрд░ рд╣реИ), \(-1 \oplus 1 = -2\) рджреЗрддрд╛ рд╣реИред
рдЕрдХреНрд╕рд░ рдкреВрдЫреЗ рдЬрд╛рдиреЗ рд╡рд╛рд▓реЗ рд╕рд╡рд╛рд▓
XOR рдХрд╛ рдорддрд▓рдм рдХреНрдпрд╛ рд╣реИ? рдПрдХреНрд╕рдХреНрд▓реВрд╕рд┐рд╡ OR тАФ рдпрд╣ рддрднреА рд╕рд╣реА (true) рд╣реЛрддрд╛ рд╣реИ рдЬрдм рджреЛрдиреЛрдВ рдЗрдирдкреБрдЯ рдореЗрдВ рд╕реЗ рдареАрдХ рдПрдХ рд╣реА рд╕рд╣реА (1) рд╣реЛред
рдХреНрд░рд┐рдкреНрдЯреЛрдЧреНрд░рд╛рдлрд╝реА рдореЗрдВ XOR рдХрд╛ рдЙрдкрдпреЛрдЧ рдХреНрдпреЛрдВ рд╣реЛрддрд╛ рд╣реИ? рдХреНрдпреЛрдВрдХрд┐ рдбреЗрдЯрд╛ рдХреЛ рдХрд┐рд╕реА key рдХреЗ рд╕рд╛рде XOR рдХрд░рдирд╛ рдЙрд▓рдЯрд╛ рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрдиреЗ рд╡рд╛рд▓рд╛ (reversible) рд╣реЛрддрд╛ рд╣реИ: рд╡рд╣реА key рджреЛрдмрд╛рд░рд╛ рд▓рдЧрд╛рдиреЗ рдкрд░ рдореВрд▓ рдбреЗрдЯрд╛ рд╡рд╛рдкрд╕ рдорд┐рд▓ рдЬрд╛рддрд╛ рд╣реИ (\(A \mathbin{\char`\^} K \mathbin{\char`\^} K = A\))ред
рдХреНрдпрд╛ рдпрд╣ рдЛрдгрд╛рддреНрдордХ рд╕рдВрдЦреНрдпрд╛рдУрдВ рдХреЛ рд╕рдВрднрд╛рд▓рддрд╛ рд╣реИ? рд╣рд╛рдБред рдЛрдгрд╛рддреНрдордХ рдорд╛рди two's-complement рдирд┐рд░реВрдкрдг рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╣реИрдВ, рдЗрд╕рд▓рд┐рдП рдЛрдгрд╛рддреНрдордХ рд╕рдВрдЦреНрдпрд╛рдУрдВ рдХреА рдмрд╛рдЗрдирд░реА рдбрд┐рд╕реНрдкреНрд▓реЗ рдореЗрдВ рдХрдИ рдмрд┐рдЯ рд╣реЛ рд╕рдХрддреЗ рд╣реИрдВред