MCP рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рдХрдиреЗрдХреНрдЯ рдХрд░реЗрдВ тЖТ

рдЧрдгрдирд╛ рджрд░реНрдЬ рдХрд░реЗрдВ

рд╕реВрддреНрд░ (рдлреЙрд░реНрдореВрд▓рд╛)

рд╡рд┐рдЬреНрдЮрд╛рдкрди

рдкрд░рд┐рдгрд╛рдо

рдмрд┐рдЯрд╡рд╛рдЗрдЬрд╝ XOR (A ^ B)
12
рджрд╢рдорд▓рд╡
рдмрд╛рдЗрдирд░реА A 1010
рдмрд╛рдЗрдирд░реА B 110
рдмрд╛рдЗрдирд░реА XOR 1100
рд╣реЗрдХреНрд╕ XOR 0xC

рдмрд┐рдЯрд╡рд╛рдЗрдЬрд╝ XOR рдХреИрд▓рдХреБрд▓реЗрдЯрд░ рдХреНрдпрд╛ рд╣реИ?

рдмрд┐рдЯрд╡рд╛рдЗрдЬрд╝ XOR (рдПрдХреНрд╕рдХреНрд▓реВрд╕рд┐рд╡ OR) рдХреИрд▓рдХреБрд▓реЗрдЯрд░ рджреЛ рдкреВрд░реНрдгрд╛рдВрдХреЛрдВ рдХреЛ рд▓реЗрдХрд░ рдЙрдиреНрд╣реЗрдВ рдмрд┐рдЯ-рджрд░-рдмрд┐рдЯ рдЬреЛрдбрд╝рддрд╛ рд╣реИред рд╣рд░ рд╕реНрдерд╛рди рдкрд░, рдЬрдм рджреЛрдиреЛрдВ рдЗрдирдкреБрдЯ рдмрд┐рдЯ рдЕрд▓рдЧ-рдЕрд▓рдЧ рд╣реЛрддреЗ рд╣реИрдВ рддреЛ рдЖрдЙрдЯрдкреБрдЯ рдмрд┐рдЯ 1 рд╣реЛрддрд╛ рд╣реИ, рдФрд░ рдЬрдм рджреЛрдиреЛрдВ рдПрдХ рдЬреИрд╕реЗ рд╣реЛрддреЗ рд╣реИрдВ рддреЛ 0 рд╣реЛрддрд╛ рд╣реИред рдпрд╣ рдкреНрд░реЛрдЧреНрд░рд╛рдорд┐рдВрдЧ, рдбрд┐рдЬрд┐рдЯрд▓ рд▓реЙрдЬрд┐рдХ, рдХреНрд░рд┐рдкреНрдЯреЛрдЧреНрд░рд╛рдлрд╝реА рдФрд░ рдПрд░рд░ рдбрд┐рдЯреЗрдХреНрд╢рди рдХреА рд╕рдмрд╕реЗ рдмреБрдирд┐рдпрд╛рджреА рдСрдкрд░реЗрд╢рдиреЛрдВ рдореЗрдВ рд╕реЗ рдПрдХ рд╣реИред

рдЗрд╕рдХрд╛ рдЙрдкрдпреЛрдЧ рдХреИрд╕реЗ рдХрд░реЗрдВ

рдЕрдкрдирд╛ рдкрд╣рд▓рд╛ рдкреВрд░реНрдгрд╛рдВрдХ (A) рдФрд░ рджреВрд╕рд░рд╛ рдкреВрд░реНрдгрд╛рдВрдХ (B) рджрд░реНрдЬ рдХрд░реЗрдВ, рдлрд┐рд░ рд╕рдмрдорд┐рдЯ рдХрд░реЗрдВред рдХреИрд▓рдХреБрд▓реЗрдЯрд░ XOR рдХрд╛ рдкрд░рд┐рдгрд╛рдо рджрд╢рдорд▓рд╡ рдореЗрдВ рджреЗрддрд╛ рд╣реИ, рд╕рд╛рде рд╣реА рдЗрд╕рдХреА рдмрд╛рдЗрдирд░реА рдФрд░ рд╣реЗрдХреНрд╕рд╛рдбреЗрд╕рд┐рдорд▓ рд░реВрдк рднреА рджрд┐рдЦрд╛рддрд╛ рд╣реИ рддрд╛рдХрд┐ рдЖрдк рд╣рд░ рдмрд┐рдЯ рдХреА рдЬрд╛рдБрдЪ рдХрд░ рд╕рдХреЗрдВред рдзрдирд╛рддреНрдордХ рдФрд░ рдЛрдгрд╛рддреНрдордХ рджреЛрдиреЛрдВ рддрд░рд╣ рдХреЗ рдкреВрд░реНрдгрд╛рдВрдХ рд╕реНрд╡реАрдХрд╛рд░ рдХрд┐рдП рдЬрд╛рддреЗ рд╣реИрдВред

рдлрд╝реЙрд░реНрдореВрд▓рд╛ рд╕рдордЭреЗрдВ

рдЕрдзрд┐рдХрддрд░ рдкреНрд░реЛрдЧреНрд░рд╛рдорд┐рдВрдЧ рднрд╛рд╖рд╛рдУрдВ рдореЗрдВ XOR рдХреЛ A ^ B рдФрд░ рдЧрдгрд┐рддреАрдп рд╕рдВрдХреЗрддрди рдореЗрдВ рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рд░реВрдк рдореЗрдВ рд▓рд┐рдЦрд╛ рдЬрд╛рддрд╛ рд╣реИ:

$$\text{Result} = \text{A} \oplus \text{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 рдХрд╛ рдЙрдкрдпреЛрдЧ рдорд╛рдиреЛрдВ рдХреА рдЕрджрд▓рд╛-рдмрджрд▓реА (рд╕реНрд╡реИрдк) рдХрд░рдиреЗ рдФрд░ рдлрд╝реНрд▓реИрдЧ рдЯреЙрдЧрд▓ рдХрд░рдиреЗ рдореЗрдВ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред

XOR рд╕рддреНрдп рд╕рд╛рд░рдгреА рдЬреЛ рджрд┐рдЦрд╛рддреА рд╣реИ 0 XOR 0 = 0, 0 XOR 1 = 1, 1 XOR 0 = 1, 1 XOR 1 = 0
XOR рддрднреА 1 рджреЗрддрд╛ рд╣реИ рдЬрдм рджреЛрдиреЛрдВ рдЗрдирдкреБрдЯ рдмрд┐рдЯ рдЕрд▓рдЧ рд╣реЛрдВред

рд╣рд▓ рдХрд┐рдпрд╛ рдЧрдпрд╛ рдЙрджрд╛рд╣рд░рдг

рдорд╛рди рд▓реАрдЬрд┐рдП 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\)ред

рджреЛ рдмрд╛рдЗрдирд░реА рд╕рдВрдЦреНрдпрд╛рдПрдБ рдПрдХ рдХреЗ рдКрдкрд░ рдПрдХ, рдЬрд┐рдирдореЗрдВ рд╣рд░ рдмрд┐рдЯ рдХреЙрд▓рдо XOR рд╕реЗ рдЬреБрдбрд╝рдХрд░ рдкрд░рд┐рдгрд╛рдо рдкрдВрдХреНрддрд┐ рдмрдирд╛рддрд╛ рд╣реИ
XOR рд╣рд░ рд╕рдВрд░реЗрдЦрд┐рдд рдмрд┐рдЯ рд╕реНрдерд╛рди рдкрд░ рд╕реНрд╡рддрдВрддреНрд░ рд░реВрдк рд╕реЗ рд▓рд╛рдЧреВ рд╣реЛрддрд╛ рд╣реИред

рдмрд┐рдЯрд╡рд╛рдЗрдЬрд╝ рдСрдкрд░реЗрд╢рди рдХреА рддреБрд▓рдирд╛

рдкреНрд░рддреНрдпреЗрдХ рдмрд┐рдЯрд╡рд╛рдЗрдЬрд╝ рдСрдкрд░реЗрд╢рди рдПрдХ рдмрд╛рд░ рдореЗрдВ рдПрдХ рдмрд┐рдЯ рдкрд░ рдХрд╛рдо рдХрд░рддрд╛ рд╣реИред рдЗрдирдкреБрдЯ рдмрд┐рдЯреНрд╕ \(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 рдирд┐рд░реВрдкрдг рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╣реИрдВ, рдЗрд╕рд▓рд┐рдП рдЛрдгрд╛рддреНрдордХ рд╕рдВрдЦреНрдпрд╛рдУрдВ рдХреА рдмрд╛рдЗрдирд░реА рдбрд┐рд╕реНрдкреНрд▓реЗ рдореЗрдВ рдХрдИ рдмрд┐рдЯ рд╣реЛ рд╕рдХрддреЗ рд╣реИрдВред

рдЕрдВрддрд┐рдо рдЕрдкрдбреЗрдЯ: