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

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

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

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

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

A | B (Bitwise OR)
6
рджрд╢рдорд▓рд╡ рдкрд░рд┐рдгрд╛рдо
рдСрдкрд░реЗрдВрдб A 4
рдСрдкрд░реЗрдВрдб B 2
A | B 6

Bitwise OR рдХреИрд▓рдХреБрд▓реЗрдЯрд░ рдХреНрдпрд╛ рд╣реИ?

рдпрд╣ рдХреИрд▓рдХреБрд▓реЗрдЯрд░ рджреЛ рдкреВрд░реНрдгрд╛рдВрдХреЛрдВ рдХрд╛ bitwise OR рдирд┐рдХрд╛рд▓рддрд╛ рд╣реИ, рдЬрд┐рд╕реЗ рдЬрд╝реНрдпрд╛рджрд╛рддрд░ рдкреНрд░реЛрдЧреНрд░рд╛рдорд┐рдВрдЧ рднрд╛рд╖рд╛рдУрдВ рдореЗрдВ a | b рд▓рд┐рдЦрд╛ рдЬрд╛рддрд╛ рд╣реИред OR рдСрдкрд░реЗрд╢рди рджреЛрдиреЛрдВ рд╕рдВрдЦреНрдпрд╛рдУрдВ рдХреА рд╣рд░ рдмрд┐рдЯ рдХреА рдЖрдкрд╕ рдореЗрдВ рддреБрд▓рдирд╛ рдХрд░рддрд╛ рд╣реИ рдФрд░ рдРрд╕рд╛ рдкрд░рд┐рдгрд╛рдо рджреЗрддрд╛ рд╣реИ рдЬрд┐рд╕рдореЗрдВ рдХреЛрдИ рдмрд┐рдЯ рддрднреА 1 рд╣реЛрддреА рд╣реИ рдЬрдм рд╕рдВрдЧрдд рдЗрдирдкреБрдЯ рдмрд┐рдЯреЛрдВ рдореЗрдВ рд╕реЗ рдХреЛрдИ рдПрдХ (рдпрд╛ рджреЛрдиреЛрдВ) 1 рд╣реЛ; рдЬрдм рджреЛрдиреЛрдВ рдЗрдирдкреБрдЯ рдмрд┐рдЯреЗрдВ 0 рд╣реЛрдВ, рддрднреА рдкрд░рд┐рдгрд╛рдо 0 рд░рд╣рддрд╛ рд╣реИред

рдЗрд╕рдХрд╛ рдЗрд╕реНрддреЗрдорд╛рд▓ рдХреИрд╕реЗ рдХрд░реЗрдВ

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

рдлрд╝реЙрд░реНрдореВрд▓рд╛ рдЖрд╕рд╛рди рднрд╛рд╖рд╛ рдореЗрдВ

рдпрд╣ рдСрдкрд░реЗрд╢рди OR рдЯреНрд░реБрде рдЯреЗрдмрд▓ рдХреЗ рдЕрдиреБрд╕рд╛рд░ рд╣рд░ рдмрд┐рдЯ рдкрд░ рдЕрд▓рдЧ-рдЕрд▓рдЧ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ: 0|0=0, 0|1=1, 1|0=1, 1|1=1ред

$$\text{Result} = \text{A} \mathbin{|} \text{B}$$

рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП A = 12 рдФрд░ B = 10 рд▓реАрдЬрд┐рдПред рдмрд╛рдЗрдирд░реА рдореЗрдВ, 12 = 1100 рдФрд░ 10 = 1010 рд╣реЛрддрд╛ рд╣реИред рдЗрдиреНрд╣реЗрдВ рдПрдХ рдХреЗ рдиреАрдЪреЗ рдПрдХ рд░рдЦрдХрд░ рд╣рд░ рдХреЙрд▓рдо рдкрд░ OR рдХрд░рдиреЗ рд╕реЗ 1110 рдорд┐рд▓рддрд╛ рд╣реИ, рдЬреЛ рджрд╢рдорд▓рд╡ рдореЗрдВ 14 рдХреЗ рдмрд░рд╛рдмрд░ рд╣реИред рдпрд╛рдиреА \(12 \mathbin{|} 10 = 14\)ред

Bitwise OR of two binary numbers shown column by column producing a result row
Bitwise OR compares each bit position: the result bit is 1 if either input bit is 1.

рд╣рд▓ рдХрд┐рдпрд╛ рд╣реБрдЖ рдЙрджрд╛рд╣рд░рдг

рдорд╛рди рд▓реАрдЬрд┐рдП рдЖрдкрдХреЛ \(5 \mathbin{|} 3\) рдирд┐рдХрд╛рд▓рдирд╛ рд╣реИред рдмрд╛рдЗрдирд░реА рдореЗрдВ, 5 = 101 рдФрд░ 3 = 011 рд╣реЛрддрд╛ рд╣реИред рд╣рд░ рдмрд┐рдЯ рдкрд░ OR рдХрд░рдиреЗ рдкрд░: 1|0=1, 0|1=1, 1|1=1, рдпрд╛рдиреА 111 = 7 рдорд┐рд▓рддрд╛ рд╣реИред рдХреИрд▓рдХреБрд▓реЗрдЯрд░ 7 рд▓реМрдЯрд╛рдПрдЧрд╛ред

$$5 \mathbin{|} 3 = 7$$
Truth table grid for the OR operation of two single bits
OR truth table: the output is 0 only when both inputs are 0.

рд╕рд╛рдорд╛рдиреНрдп рдмрд┐рдЯрд╡рд╛рдЗрдЬрд╝ OR рдорд╛рди рд╕рдВрджрд░реНрдн

рдиреАрдЪреЗ рджрд┐рдпрд╛ рдЧрдпрд╛ рдЧреНрд░рд┐рдб 0 рд╕реЗ 8 рддрдХ рдкреНрд░рддреНрдпреЗрдХ рдЫреЛрдЯреЗ рдСрдкрд░реЗрдВрдб рдХреЗ рдЬреЛрдбрд╝реЗ рдХреЗ рд▓рд┐рдП \(A \mathbin{|} B\) рджреЗрддрд╛ рд╣реИред A рдХреЗ рд▓рд┐рдП рдкрдВрдХреНрддрд┐ рдкрдврд╝реЗрдВ рдФрд░ B рдХреЗ рд▓рд┐рдП рд╕реНрддрдВрдн рдкрдврд╝реЗрдВ; рд╕реЗрд▓ рджрд╢рдорд▓рд╡ рдкрд░рд┐рдгрд╛рдо рд╣реИред

| 0 1 2 3 4 5 6 7 8
0 0 1 2 3 4 5 6 7 8
1 1 1 3 3 5 5 7 7 9
2 2 3 2 3 6 7 6 7 10
3 3 3 3 3 7 7 7 7 11
4 4 5 6 7 4 5 6 7 12
5 5 5 7 7 5 5 7 7 13
6 6 7 6 7 6 7 6 7 14
7 7 7 7 7 7 7 7 7 15
8 8 9 10 11 12 13 14 15 8

рд╡рд┐рдХрд░реНрдг (рдЬрд╣рд╛рдВ A = B) рд╣рдореЗрд╢рд╛ рдСрдкрд░реЗрдВрдб рдХреЛ рд╕реНрд╡рдпрдВ рд▓реМрдЯрд╛рддрд╛ рд╣реИ, рдХреНрдпреЛрдВрдХрд┐ x | x = xред

рдмрд┐рдЯрд╡рд╛рдЗрдЬрд╝ OR рдЕрдиреБрдорддрд┐ рдлреНрд▓реИрдЧ рдХреЛ рд╕рдВрдпреЛрдЬрд┐рдд рдХрд░рдиреЗ рдХрд╛ рдорд╛рдирдХ рддрд░реАрдХрд╛ рд╣реИред рд╕рд╛рдорд╛рдиреНрдп Unix-рд╢реИрд▓реА рдХреА рдЕрдиреБрдорддрд┐ рдмрд┐рдЯреНрд╕ рд╣реИрдВ рдкрдврд╝рдирд╛ = 4 (100), рд▓рд┐рдЦрдирд╛ = 2 (010), рдирд┐рд╖реНрдкрд╛рджрд┐рдд рдХрд░рдирд╛ = 1 (001):

рд╕рдВрдпреЛрдЬрди рдЕрднрд┐рд╡реНрдпрдХреНрддрд┐ рджрд╢рдорд▓рд╡ рдмрд╛рдЗрдирд░реА
рдкрдврд╝рдирд╛ + рд▓рд┐рдЦрдирд╛ 4 | 2 6 110
рдкрдврд╝рдирд╛ + рдирд┐рд╖реНрдкрд╛рджрд┐рдд рдХрд░рдирд╛ 4 | 1 5 101
рд▓рд┐рдЦрдирд╛ + рдирд┐рд╖реНрдкрд╛рджрд┐рдд рдХрд░рдирд╛ 2 | 1 3 011
рдкрдврд╝рдирд╛ + рд▓рд┐рдЦрдирд╛ + рдирд┐рд╖реНрдкрд╛рджрд┐рдд рдХрд░рдирд╛ (rwx) 4 | 2 | 1 7 111
рджреЛ рдмрд╛рдЗрдЯреНрд╕ рдорд░реНрдЬ рдХрд┐рдП рдЧрдП 240 | 15 255 11111111

рдореБрдЦреНрдп рд╢рд░реНрддреЗрдВ

рдмрд┐рдЯ
рдбрд┐рдЬрд┐рдЯрд▓ рдбреЗрдЯрд╛ рдХреА рд╕рдмрд╕реЗ рдЫреЛрдЯреА рдЗрдХрд╛рдИ, рдЬреЛ 0 рдпрд╛ 1 рдХрд╛ рдПрдХ рдмрд╛рдЗрдирд░реА рдорд╛рди рд░рдЦрддреА рд╣реИред 8 рдмрд┐рдЯреНрд╕ рдХрд╛ рдПрдХ рд╕рдореВрд╣ рдПрдХ рдмрд╛рдЗрдЯ рдмрдирд╛рддрд╛ рд╣реИред
рд╕реЗрдЯ / рдЕрдирд╕реЗрдЯ рдмрд┐рдЯ
рдПрдХ рд╕реЗрдЯ рдмрд┐рдЯ рдХрд╛ рдорд╛рди 1 рд╣реИ; рдПрдХ рдЕрдирд╕реЗрдЯ (рдпрд╛ рдХреНрд▓реАрдпрд░) рдмрд┐рдЯ рдХрд╛ рдорд╛рди 0 рд╣реИред рдмрд┐рдЯрд╡рд╛рдЗрдЬрд╝ OR рдЖрдорддреМрд░ рдкрд░ рджреВрд╕рд░реЛрдВ рдХреЛ рдкрд░реЗрд╢рд╛рди рдХрд┐рдП рдмрд┐рдирд╛ рд╡рд┐рд╢рд┐рд╖реНрдЯ рдмрд┐рдЯреНрд╕ рдХреЛ рд╕реЗрдЯ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред
рдмрд┐рдЯрдорд╛рд╕реНрдХ
рдПрдХ рдкреВрд░реНрдгрд╛рдВрдХ рдЬрд┐рд╕рдХрд╛ рдмрд┐рдЯ рдкреИрдЯрд░реНрди рдХрд┐рд╕реА рдЕрдиреНрдп рдорд╛рди рдореЗрдВ рд╡рд┐рд╢реЗрд╖ рдмрд┐рдЯреНрд╕ рдХреЛ рдЪреБрдирдиреЗ, рд╕реЗрдЯ рдХрд░рдиреЗ рдпрд╛ рдХреНрд▓реАрдпрд░ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЪреБрдирд╛ рдЬрд╛рддрд╛ рд╣реИред рдПрдХ рдорд╛рди рдХреЗ рд╕рд╛рде рдПрдХ рдорд╛рд╕реНрдХ рдХреЛ OR рдХрд░рдиреЗ рд╕реЗ рдорд╛рд╕реНрдХ рдореЗрдВ рд╕реЗрдЯ рдХреА рдЧрдИ рд╣рд░ рдмрд┐рдЯ рдХреЛ рдкрд░рд┐рдгрд╛рдо рдореЗрдВ рд╕реЗрдЯ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдордЬрдмреВрд░ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред
рдлреНрд▓реИрдЧ
рдПрдХ рд╡реНрдпрдХреНрддрд┐рдЧрдд рдмрд┐рдЯ (рдЕрдХреНрд╕рд░ рдПрдХ рдирд╛рдо рд╡рд╛рд▓реЗ рд╕реНрдерд┐рд░рд╛рдВрдХ рдХреЛ рджрд┐рдпрд╛ рдЧрдпрд╛) рдПрдХ рдСрди/рдСрдл рд╕реЗрдЯрд┐рдВрдЧ рдХрд╛ рдкреНрд░рддрд┐рдирд┐рдзрд┐рддреНрд╡ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред рдХрдИ рдлреНрд▓реИрдЧреНрд╕ рдХреЛ рдПрдХ рдкреВрд░реНрдгрд╛рдВрдХ рдореЗрдВ рдкреИрдХ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ рдФрд░ OR рдХреЗ рд╕рд╛рде рд╕рдВрдпреЛрдЬрд┐рдд рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП READ | WRITEред
рджреЛ рдХрд╛ рдкреВрд░рдХ
рд╣рд╕реНрддрд╛рдХреНрд╖рд░рд┐рдд рдкреВрд░реНрдгрд╛рдВрдХреЛрдВ рдХрд╛ рдкреНрд░рддрд┐рдирд┐рдзрд┐рддреНрд╡ рдХрд░рдиреЗ рдХрд╛ рдорд╛рдирдХ рддрд░реАрдХрд╛ рдХрдВрдкреНрдпреВрдЯрд░ рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╣реИрдВред рд╕рдмрд╕реЗ рдорд╣рддреНрд╡рдкреВрд░реНрдг рдмрд┐рдЯ рдореЗрдВ рдирдХрд╛рд░рд╛рддреНрдордХ рд╡рдЬрди рд╣реЛрддрд╛ рд╣реИ, рдЗрд╕рд▓рд┐рдП рдПрдХ n-рдмрд┐рдЯ рд╕рдВрдЦреНрдпрд╛ \(-2^{n-1}\) рд╕реЗ \(2^{n-1}-1\) рддрдХ рд╣реЛрддреА рд╣реИред рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, \(-1\) рд╕рднреА 1-рдмрд┐рдЯреНрд╕ рдХреЗ рд░реВрдк рдореЗрдВ рд╕рдВрдЧреНрд░рд╣реАрдд рд╣реИред
рд╕рдмрд╕реЗ / рдХрдо рдорд╣рддреНрд╡рдкреВрд░реНрдг рдмрд┐рдЯ (MSB / LSB)
MSB рд╕рдмрд╕реЗ рдмрд╛рдИрдВ рдУрд░ рдХреА рдмрд┐рдЯ рд╣реИ, рдЬреЛ рд╕рдмрд╕реЗ рдмрдбрд╝реА рдЬрдЧрд╣ рдХреА рдХреАрдордд (рдФрд░ рджреЛ рдХреЗ рдкреВрд░рдХ рдореЗрдВ рд╕рдВрдХреЗрдд) рд╣реИ; LSB рд╕рдмрд╕реЗ рджрд╛рдИрдВ рдУрд░ рдХреА рдмрд┐рдЯ рд╣реИ, рдЬрд┐рд╕рдХреА рдЬрдЧрд╣ рдХреА рдХреАрдордд \(2^0 = 1\) рд╣реИред
рдЖрдзрд╛рд░ 10 рдмрдирд╛рдо рдЖрдзрд╛рд░ 2
рдЖрдзрд╛рд░ 10 (рджрд╢рдорд▓рд╡) рд░реЛрдЬрд╝рдорд░реНрд░рд╛ рдХреА рд╕рдВрдЦреНрдпрд╛ рдкреНрд░рдгрд╛рд▓реА рд╣реИ рдЬреЛ рдЕрдВрдХ 0тАУ9 рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддреА рд╣реИред рдЖрдзрд╛рд░ 2 (рдмрд╛рдЗрдирд░реА) рдХреЗрд╡рд▓ 0 рдФрд░ 1 рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддрд╛ рд╣реИ, рдкреНрд░рддреНрдпреЗрдХ рд╕реНрдерд┐рддрд┐ рджреЛ рдХреА рд╢рдХреНрддрд┐ рдХреЗ рд▓рд╛рдпрдХ рд╣реИред рдмрд┐рдЯрд╡рд╛рдЗрдЬрд╝ рд╕рдВрдЪрд╛рд▓рди рдЖрдзрд╛рд░-2 рдкреНрд░рддрд┐рдирд┐рдзрд┐рддреНрд╡ рдкрд░ рдХрд╛рд░реНрдп рдХрд░рддреЗ рд╣реИрдВ, рдЬрдмрдХрд┐ рдпрд╣ рдХреИрд▓рдХреБрд▓реЗрдЯрд░ рдкрд░рд┐рдгрд╛рдо рдХреЛ рдЖрдзрд╛рд░ 10 рдореЗрдВ рдкреНрд░рджрд░реНрд╢рд┐рдд рдХрд░рддрд╛ рд╣реИред

рдЕрдХреНрд╕рд░ рдкреВрдЫреЗ рдЬрд╛рдиреЗ рд╡рд╛рд▓реЗ рд╕рд╡рд╛рд▓

рдХреНрдпрд╛ bitwise OR рдЬреЛрдбрд╝ (addition) рдЬреИрд╕рд╛ рд╣реА рд╣реИ? рдирд╣реАрдВред OR рдореЗрдВ рдХрднреА рдХреИрд░реА (carry) рдирд╣реАрдВ рд╣реЛрддрд╛ред 1|1 рдХрд╛ рдкрд░рд┐рдгрд╛рдо 1 рд╣реА рд░рд╣рддрд╛ рд╣реИ, рдЬрдмрдХрд┐ 1+1 рдмрд╛рдЗрдирд░реА рдореЗрдВ 10 рддрдХ рдХреИрд░реА рдХрд░ рдЬрд╛рддрд╛ рд╣реИред рдпреЗ рджреЛрдиреЛрдВ рд╕рд┐рд░реНрдлрд╝ рддрднреА рдПрдХ рдЬреИрд╕рд╛ рдкрд░рд┐рдгрд╛рдо рджреЗрддреЗ рд╣реИрдВ рдЬрдм рджреЛрдиреЛрдВ рд╕рдВрдЦреНрдпрд╛рдУрдВ рдХреА рдХреЛрдИ рднреА рд╕реЗрдЯ рдмрд┐рдЯ рдЖрдкрд╕ рдореЗрдВ рди рдЯрдХрд░рд╛рдПред

рдЛрдгрд╛рддреНрдордХ рд╕рдВрдЦреНрдпрд╛рдУрдВ рдХрд╛ рдХреНрдпрд╛? рдЛрдгрд╛рддреНрдордХ рдкреВрд░реНрдгрд╛рдВрдХ two's complement рд░реВрдк рдореЗрдВ рджрд░реНрд╢рд╛рдП рдЬрд╛рддреЗ рд╣реИрдВ, рдЗрд╕рд▓рд┐рдП рдЙрди рдкрд░ OR рдХрд░рдиреЗ рдореЗрдВ рд╕рд╛рдЗрди рдмрд┐рдЯреЛрдВ рд╕рдореЗрдд рд╡рд╣реА рдмрд┐рдЯ рдирд┐рдпрдо рд▓рд╛рдЧреВ рд╣реЛрддреЗ рд╣реИрдВред

OR рдХрд┐рд╕ рдХрд╛рдо рдЖрддрд╛ рд╣реИ? OR рдХрд╛ рдЗрд╕реНрддреЗрдорд╛рд▓ рдЖрдорддреМрд░ рдкрд░ рдХрд┐рд╕реА рдЦрд╝рд╛рд╕ рдмрд┐рдЯ рдХреЛ рд╕реЗрдЯ (рдЪрд╛рд▓реВ) рдХрд░рдиреЗ рдпрд╛ flag рдорд╛рдиреЛрдВ рдХреЛ рдЖрдкрд╕ рдореЗрдВ рдЬреЛрдбрд╝рдиреЗ рдХреЗ рд▓рд┐рдП рд╣реЛрддрд╛ рд╣реИ, рдЬреИрд╕реЗ permission mask рдХреЛ рдорд┐рд▓рд╛рдирд╛ред

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