Π§ΡΠΎ ΡΠ°ΠΊΠΎΠ΅ ΠΏΠΎΠ±ΠΈΡΠΎΠ²ΠΎΠ΅ ΠΈΠ»ΠΈ
Π£ΡΠΎΠΊ β45. ΠΠΎΠ±ΠΈΡΠΎΠ²ΡΠ΅ ΠΎΠΏΠ΅ΡΠ°ΡΠΎΡΡ
ΠΠ±Π½ΠΎΠ²Π». 11 Π‘Π΅Π½ 2021 |
ΠΠΎΠ±ΠΈΡΠΎΠ²ΡΠ΅ ΠΎΠΏΠ΅ΡΠ°ΡΠΎΡΡ ΠΌΠ°Π½ΠΈΠΏΡΠ»ΠΈΡΡΡΡ ΠΎΡΠ΄Π΅Π»ΡΠ½ΡΠΌΠΈ Π±ΠΈΡΠ°ΠΌΠΈ Π² ΠΏΡΠ΅Π΄Π΅Π»Π°Ρ ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΠΎΠΉ.
ΠΡΠΈΠΌΠ΅ΡΠ°Π½ΠΈΠ΅: ΠΠ»Ρ Π½Π΅ΠΊΠΎΡΠΎΡΡΡ ΡΡΠΎΡ ΠΌΠ°ΡΠ΅ΡΠΈΠ°Π» ΠΌΠΎΠΆΠ΅Ρ ΠΏΠΎΠΊΠ°Π·Π°ΡΡΡΡ ΡΠ»ΠΎΠΆΠ½ΡΠΌ. ΠΡΠ»ΠΈ Π²Ρ Π·Π°ΡΡΡΡΠ»ΠΈ ΠΈΠ»ΠΈ ΡΡΠΎ-ΡΠΎ Π½Π΅ ΠΏΠΎΠ½ΡΡΠ½ΠΎ β ΠΏΡΠΎΠΏΡΡΡΠΈΡΠ΅ ΡΡΠΎΡ ΡΡΠΎΠΊ (ΠΈ ΡΠ»Π΅Π΄ΡΡΡΠΈΠΉ), Π² Π±ΡΠ΄ΡΡΠ΅ΠΌ ΡΠΌΠΎΠΆΠ΅ΡΠ΅ Π²Π΅ΡΠ½ΡΡΡΡΡ ΠΈ ΡΠ°Π·ΠΎΠ±ΡΠ°ΡΡΡΡ Π΄Π΅ΡΠ°Π»ΡΠ½ΠΎ. ΠΠ½ Π½Π΅ ΡΡΠΎΠ»Ρ Π²Π°ΠΆΠ΅Π½ Π΄Π»Ρ ΠΏΡΠΎΠ³ΡΠ΅ΡΡΠ° Π² ΠΈΠ·ΡΡΠ΅Π½ΠΈΠΈ ΡΠ·ΡΠΊΠ° C++, ΠΊΠ°ΠΊ Π΄ΡΡΠ³ΠΈΠ΅ ΡΡΠΎΠΊΠΈ, ΠΈ ΠΈΠ·Π»ΠΎΠΆΠ΅Π½ Π·Π΄Π΅ΡΡ Π² Π±ΠΎΠ»ΡΡΠ΅ΠΉ ΠΌΠ΅ΡΠ΅ Π΄Π»Ρ ΠΎΠ±ΡΠ΅Π³ΠΎ ΡΠ°Π·Π²ΠΈΡΠΈΡ.
ΠΠ°ΡΠ΅ΠΌ Π½ΡΠΆΠ½Ρ ΠΏΠΎΠ±ΠΈΡΠΎΠ²ΡΠ΅ ΠΎΠΏΠ΅ΡΠ°ΡΠΎΡΡ?
Π Π΄Π°Π»Π΅ΠΊΠΎΠΌ ΠΏΡΠΎΡΠ»ΠΎΠΌ ΠΊΠΎΠΌΠΏΡΡΡΠ΅ΡΠ½ΠΎΠΉ ΠΏΠ°ΠΌΡΡΠΈ Π±ΡΠ»ΠΎ ΠΎΡΠ΅Π½Ρ ΠΌΠ°Π»ΠΎ ΠΈ Π΅Ρ ΡΠΈΠ»ΡΠ½ΠΎ Π΄ΠΎΡΠΎΠΆΠΈΠ»ΠΈ. ΠΡΠΎ Π±ΡΠ»ΠΎ ΡΡΠΈΠΌΡΠ»ΠΎΠΌ ΠΌΠ°ΠΊΡΠΈΠΌΠ°Π»ΡΠ½ΠΎ ΡΠ°Π·ΡΠΌΠ½ΠΎ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ ΠΊΠ°ΠΆΠ΄ΡΠΉ Π΄ΠΎΡΡΡΠΏΠ½ΡΠΉ Π±ΠΈΡ. ΠΠ°ΠΏΡΠΈΠΌΠ΅Ρ, Π² Π»ΠΎΠ³ΠΈΡΠ΅ΡΠΊΠΎΠΌ ΡΠΈΠΏΠ΅ Π΄Π°Π½Π½ΡΡ bool Π΅ΡΡΡ Π²ΡΠ΅Π³ΠΎ Π»ΠΈΡΡ Π΄Π²Π° Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΡΡ Π·Π½Π°ΡΠ΅Π½ΠΈΡ (true ΠΈ false), ΠΊΠΎΡΠΎΡΡΠ΅ ΠΌΠΎΠ³ΡΡ Π±ΡΡΡ ΠΏΡΠ΅Π΄ΡΡΠ°Π²Π»Π΅Π½Ρ ΠΎΠ΄Π½ΠΈΠΌ Π±ΠΈΡΠΎΠΌ, Π½ΠΎ ΠΏΠΎ ΡΠ°ΠΊΡΡ Π·Π°Π½ΠΈΠΌΠ°ΡΡ ΡΠ΅Π»ΡΠΉ Π±Π°ΠΉΡ ΠΏΠ°ΠΌΡΡΠΈ! Π ΡΡΠΎ, Π² ΡΠ²ΠΎΡ ΠΎΡΠ΅ΡΠ΅Π΄Ρ, ΠΈΠ·-Π·Π° ΡΠΎΠ³ΠΎ, ΡΡΠΎ ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΡΠ΅ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΡΡ ΡΠ½ΠΈΠΊΠ°Π»ΡΠ½ΡΠ΅ Π°Π΄ΡΠ΅ΡΠ° ΠΏΠ°ΠΌΡΡΠΈ, Π° ΠΎΠ½ΠΈ Π²ΡΠ΄Π΅Π»ΡΡΡΡΡ ΡΠΎΠ»ΡΠΊΠΎ Π² Π±Π°ΠΉΡΠ°Ρ . ΠΠ΅ΡΠ΅ΠΌΠ΅Π½Π½Π°Ρ bool Π·Π°Π½ΠΈΠΌΠ°Π΅Ρ 1 Π±ΠΈΡ, Π° Π΄ΡΡΠ³ΠΈΠ΅ 7 Π±ΠΈΡ β ΡΡΠ°ΡΡΡΡΡ Π²ΠΏΡΡΡΡΡ.
ΠΡΠΏΠΎΠ»ΡΠ·ΡΡ ΠΏΠΎΠ±ΠΈΡΠΎΠ²ΡΠ΅ ΠΎΠΏΠ΅ΡΠ°ΡΠΎΡΡ, ΠΌΠΎΠΆΠ½ΠΎ ΡΠΎΠ·Π΄Π°Π²Π°ΡΡ ΡΡΠ½ΠΊΡΠΈΠΈ, ΠΊΠΎΡΠΎΡΡΠ΅ ΠΏΠΎΠ·Π²ΠΎΠ»ΡΡ ΡΠΌΠ΅ΡΡΠΈΡΡ 8 Π·Π½Π°ΡΠ΅Π½ΠΈΠΉ ΡΠΈΠΏΠ° bool Π² ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΡΡ ΡΠ°Π·ΠΌΠ΅ΡΠΎΠΌ 1 Π±Π°ΠΉΡ, ΡΡΠΎ Π·Π½Π°ΡΠΈΡΠ΅Π»ΡΠ½ΠΎ ΡΡΠΊΠΎΠ½ΠΎΠΌΠΈΡ ΠΏΠΎΡΡΠ΅Π±Π»Π΅Π½ΠΈΠ΅ ΠΏΠ°ΠΌΡΡΠΈ. Π ΠΏΡΠΎΡΠ»ΠΎΠΌ ΡΠ°ΠΊΠΎΠΉ ΡΡΡΠΊ Π±ΡΠ» ΠΎΡΠ΅Π½Ρ ΠΏΠΎΠΏΡΠ»ΡΡΠ΅Π½. ΠΠΎ ΡΠ΅Π³ΠΎΠ΄Π½Ρ, ΠΏΠΎ ΠΊΡΠ°ΠΉΠ½Π΅ΠΉ ΠΌΠ΅ΡΠ΅, Π² ΠΏΡΠΈΠΊΠ»Π°Π΄Π½ΠΎΠΌ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠΈΡΠΎΠ²Π°Π½ΠΈΠΈ, ΡΡΠΎ Π½Π΅ ΡΠ°ΠΊ.
Π’Π΅ΠΏΠ΅ΡΡ ΠΏΠ°ΠΌΡΡΠΈ ΡΡΠ°Π»ΠΎ ΡΡΡΠ΅ΡΡΠ²Π΅Π½Π½ΠΎ Π±ΠΎΠ»ΡΡΠ΅ ΠΈ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠΈΡΡΡ ΠΎΠ±Π½Π°ΡΡΠΆΠΈΠ»ΠΈ, ΡΡΠΎ Π»ΡΡΡΠ΅ ΠΏΠΈΡΠ°ΡΡ ΠΊΠΎΠ΄ ΡΠ°ΠΊ, ΡΡΠΎΠ±Ρ Π±ΡΠ»ΠΎ ΠΏΡΠΎΡΠ΅ ΠΈ ΠΏΠΎΠ½ΡΡΠ½Π΅Π΅ Π΅Π³ΠΎ ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΈΠ²Π°ΡΡ, Π½Π΅ΠΆΠ΅Π»ΠΈ ΡΡΠ»ΠΎΠΆΠ½ΡΡΡ Π΅Π³ΠΎ ΡΠ°Π΄ΠΈ Π½Π΅Π·Π½Π°ΡΠΈΡΠ΅Π»ΡΠ½ΠΎΠΉ ΡΠΊΠΎΠ½ΠΎΠΌΠΈΠΈ ΠΏΠ°ΠΌΡΡΠΈ. ΠΠΎΡΡΠΎΠΌΡ ΡΠΏΡΠΎΡ Π½Π° ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠ΅ ΠΏΠΎΠ±ΠΈΡΠΎΠ²ΡΡ ΠΎΠΏΠ΅ΡΠ°ΡΠΎΡΠΎΠ² Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΎ ΡΠΌΠ΅Π½ΡΡΠΈΠ»ΡΡ, Π·Π° ΠΈΡΠΊΠ»ΡΡΠ΅Π½ΠΈΠ΅ΠΌ ΡΠ»ΡΡΠ°Π΅Π², ΠΊΠΎΠ³Π΄Π° Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΠ° ΡΠΆ ΠΌΠ°ΠΊΡΠΈΠΌΠ°Π»ΡΠ½Π°Ρ ΠΎΠΏΡΠΈΠΌΠΈΠ·Π°ΡΠΈΡ (Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ, Π½Π°ΡΡΠ½ΡΠ΅ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΡ, ΠΊΠΎΡΠΎΡΡΠ΅ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΡΡ ΠΎΠ³ΡΠΎΠΌΠ½ΠΎΠ΅ ΠΊΠΎΠ»ΠΈΡΠ΅ΡΡΠ²ΠΎ Π΄Π°Π½Π½ΡΡ ; ΠΈΠ³ΡΡ, Π³Π΄Π΅ ΠΌΠ°Π½ΠΈΠΏΡΠ»ΡΡΠΈΠΈ Ρ Π±ΠΈΡΠ°ΠΌΠΈ ΠΌΠΎΠ³ΡΡ Π±ΡΡΡ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½Ρ Π΄Π»Ρ Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡΠ΅Π»ΡΠ½ΠΎΠΉ ΡΠΊΠΎΡΠΎΡΡΠΈ; Π²ΡΡΡΠΎΠ΅Π½Π½ΡΠ΅ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΡ, Π³Π΄Π΅ ΠΏΠ°ΠΌΡΡΡ ΠΏΠΎ-ΠΏΡΠ΅ΠΆΠ½Π΅ΠΌΡ ΠΎΠ³ΡΠ°Π½ΠΈΡΠ΅Π½Π°).
Π ΡΠ·ΡΠΊΠ΅ Π‘++ Π΅ΡΡΡ 6 ΠΏΠΎΠ±ΠΈΡΠΎΠ²ΡΡ ΠΎΠΏΠ΅ΡΠ°ΡΠΎΡΠΎΠ²:
ΠΠΏΠ΅ΡΠ°ΡΠΎΡ | Π‘ΠΈΠΌΠ²ΠΎΠ» | ΠΡΠΈΠΌΠ΅Ρ | ΠΠΏΠ΅ΡΠ°ΡΠΈΡ |
ΠΠΎΠ±ΠΈΡΠΎΠ²ΡΠΉ ΡΠ΄Π²ΠΈΠ³ Π²Π»Π΅Π²ΠΎ | > | x >> y | ΠΡΠ΅ Π±ΠΈΡΡ Π² x ΡΠΌΠ΅ΡΠ°ΡΡΡΡ Π²ΠΏΡΠ°Π²ΠΎ Π½Π° y Π±ΠΈΡ |
ΠΠΎΠ±ΠΈΡΠΎΠ²ΠΎΠ΅ ΠΠ | ΠΡΠ΅ Π±ΠΈΡΡ Π² x ΠΌΠ΅Π½ΡΡΡΡΡ Π½Π° ΠΏΡΠΎΡΠΈΠ²ΠΎΠΏΠΎΠ»ΠΎΠΆΠ½ΡΠ΅ | ||
ΠΠΎΠ±ΠΈΡΠΎΠ²ΠΎΠ΅ Π | & | x & y | ΠΠ°ΠΆΠ΄ΡΠΉ Π±ΠΈΡ Π² x Π ΠΊΠ°ΠΆΠ΄ΡΠΉ ΡΠΎΠΎΡΠ²Π΅ΡΡΡΠ²ΡΡΡΠΈΠΉ Π΅ΠΌΡ Π±ΠΈΡ Π² y |
ΠΠΎΠ±ΠΈΡΠΎΠ²ΠΎΠ΅ ΠΠΠ | | | x | y | ΠΠ°ΠΆΠ΄ΡΠΉ Π±ΠΈΡ Π² x ΠΠΠ ΠΊΠ°ΠΆΠ΄ΡΠΉ ΡΠΎΠΎΡΠ²Π΅ΡΡΡΠ²ΡΡΡΠΈΠΉ Π΅ΠΌΡ Π±ΠΈΡ Π² y |
ΠΠΎΠ±ΠΈΡΠΎΠ²ΠΎΠ΅ ΠΈΡΠΊΠ»ΡΡΠ°ΡΡΠ΅Π΅ ΠΠΠ (XOR) | ^ | x ^ y | ΠΠ°ΠΆΠ΄ΡΠΉ Π±ΠΈΡ Π² x XOR Ρ ΠΊΠ°ΠΆΠ΄ΡΠΌ ΡΠΎΠΎΡΠ²Π΅ΡΡΡΠ²ΡΡΡΠΈΠΌ Π΅ΠΌΡ Π±ΠΈΡΠΎΠΌ Π² y |
Π ΠΏΠΎΠ±ΠΈΡΠΎΠ²ΡΡ ΠΎΠΏΠ΅ΡΠ°ΡΠΈΡΡ ΡΠ»Π΅Π΄ΡΠ΅Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ ΡΠΎΠ»ΡΠΊΠΎ ΡΠ΅Π»ΠΎΡΠΈΡΠ»Π΅Π½Π½ΡΠ΅ ΡΠΈΠΏΡ Π΄Π°Π½Π½ΡΡ unsigned, ΡΠ°ΠΊ ΠΊΠ°ΠΊ C++ Π½Π΅ Π²ΡΠ΅Π³Π΄Π° Π³Π°ΡΠ°Π½ΡΠΈΡΡΠ΅Ρ ΠΊΠΎΡΡΠ΅ΠΊΡΠ½ΡΡ ΡΠ°Π±ΠΎΡΡ ΠΏΠΎΠ±ΠΈΡΠΎΠ²ΡΡ ΠΎΠΏΠ΅ΡΠ°ΡΠΎΡΠΎΠ² Ρ ΡΠ΅Π»ΠΎΡΠΈΡΠ»Π΅Π½Π½ΡΠΌΠΈ ΡΠΈΠΏΠ°ΠΌΠΈ signed.
ΠΡΠ°Π²ΠΈΠ»ΠΎ: ΠΡΠΈ ΡΠ°Π±ΠΎΡΠ΅ Ρ ΠΏΠΎΠ±ΠΈΡΠΎΠ²ΡΠΌΠΈ ΠΎΠΏΠ΅ΡΠ°ΡΠΎΡΠ°ΠΌΠΈ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠΉΡΠ΅ ΡΠ΅Π»ΠΎΡΠΈΡΠ»Π΅Π½Π½ΡΠ΅ ΡΠΈΠΏΡ Π΄Π°Π½Π½ΡΡ unsigned.
ΠΠΎΠ±ΠΈΡΠΎΠ²ΡΠΉ ΡΠ΄Π²ΠΈΠ³ Π²Π»Π΅Π²ΠΎ ( >)
Π ΡΠ·ΡΠΊΠ΅ C++ ΠΊΠΎΠ»ΠΈΡΠ΅ΡΡΠ²ΠΎ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΠΌΡΡ Π±ΠΈΡ ΠΎΡΠ½ΠΎΠ²ΡΠ²Π°Π΅ΡΡΡ Π½Π° ΡΠ°Π·ΠΌΠ΅ΡΠ΅ ΡΠΈΠΏΠ° Π΄Π°Π½Π½ΡΡ (Π² 1 Π±Π°ΠΉΡΠ΅ Π½Π°Ρ ΠΎΠ΄ΡΡΡΡ 8 Π±ΠΈΡ). ΠΠΏΠ΅ΡΠ°ΡΠΎΡ ΠΏΠΎΠ±ΠΈΡΠΎΠ²ΠΎΠ³ΠΎ ΡΠ΄Π²ΠΈΠ³Π° Π²Π»Π΅Π²ΠΎ ( ) ΡΠ΄Π²ΠΈΠ³Π°Π΅Ρ Π±ΠΈΡΡ Π²Π»Π΅Π²ΠΎ. ΠΠ΅Π²ΡΠΉ ΠΎΠΏΠ΅ΡΠ°Π½Π΄ ΡΠ²Π»ΡΠ΅ΡΡΡ Π²ΡΡΠ°ΠΆΠ΅Π½ΠΈΠ΅ΠΌ, Π² ΠΊΠΎΡΠΎΡΠΎΠΌ ΠΎΠ½ΠΈ ΡΠ΄Π²ΠΈΠ³Π°ΡΡΡΡ, Π° ΠΏΡΠ°Π²ΡΠΉ β ΠΊΠΎΠ»ΠΈΡΠ΅ΡΡΠ²ΠΎ ΠΌΠ΅ΡΡ, Π½Π° ΠΊΠΎΡΠΎΡΡΠ΅ Π½ΡΠΆΠ½ΠΎ ΡΠ΄Π²ΠΈΠ½ΡΡΡ. ΠΠΎΡΡΠΎΠΌΡ Π² Π²ΡΡΠ°ΠΆΠ΅Π½ΠΈΠΈ 3 ΠΌΡ ΠΈΠΌΠ΅Π΅ΠΌ Π² Π²ΠΈΠ΄Ρ Β«ΡΠ΄Π²ΠΈΠ½ΡΡΡ Π±ΠΈΡΡ Π²Π»Π΅Π²ΠΎ Π² Π»ΠΈΡΠ΅ΡΠ°Π»Π΅ 3 Π½Π° ΠΎΠ΄Π½ΠΎ ΠΌΠ΅ΡΡΠΎΒ».
ΠΡΠΈΠΌΠ΅ΡΠ°Π½ΠΈΠ΅: Π ΡΠ»Π΅Π΄ΡΡΡΠΈΡ ΠΏΡΠΈΠΌΠ΅ΡΠ°Ρ ΠΌΡ Π±ΡΠ΄Π΅ΠΌ ΡΠ°Π±ΠΎΡΠ°ΡΡ Ρ 4-Π±ΠΈΡΠ½ΡΠΌΠΈ Π΄Π²ΠΎΠΈΡΠ½ΡΠΌΠΈ Π·Π½Π°ΡΠ΅Π½ΠΈΡΠΌΠΈ.
Π Π°ΡΡΠΌΠΎΡΡΠΈΠΌ ΡΠΈΡΠ»ΠΎ 3, ΠΊΠΎΡΠΎΡΠΎΠ΅ Π² Π΄Π²ΠΎΠΈΡΠ½ΠΎΠΉ ΡΠΈΡΡΠ΅ΠΌΠ΅ ΡΠ°Π²Π½ΠΎ 0011:
Π ΠΏΠΎΡΠ»Π΅Π΄Π½Π΅ΠΌ ΡΡΠ΅ΡΡΠ΅ΠΌ ΡΠ»ΡΡΠ°Π΅ ΠΎΠ΄ΠΈΠ½ Π±ΠΈΡ ΠΏΠ΅ΡΠ΅ΠΌΠ΅ΡΠ°Π΅ΡΡΡ Π·Π° ΠΏΡΠ΅Π΄Π΅Π»Ρ ΡΠ°ΠΌΠΎΠ³ΠΎ Π»ΠΈΡΠ΅ΡΠ°Π»Π°! ΠΠΈΡΡ, ΡΠ΄Π²ΠΈΠ½ΡΡΡΠ΅ Π·Π° ΠΏΡΠ΅Π΄Π΅Π»Ρ Π΄Π²ΠΎΠΈΡΠ½ΠΎΠ³ΠΎ ΡΠΈΡΠ»Π°, ΡΠ΅ΡΡΡΡΡΡ Π½Π°Π²ΡΠ΅Π³Π΄Π°.
ΠΠΏΠ΅ΡΠ°ΡΠΎΡ ΠΏΠΎΠ±ΠΈΡΠΎΠ²ΠΎΠ³ΠΎ ΡΠ΄Π²ΠΈΠ³Π° Π²ΠΏΡΠ°Π²ΠΎ ( >> ) ΡΠ΄Π²ΠΈΠ³Π°Π΅Ρ Π±ΠΈΡΡ Π²ΠΏΡΠ°Π²ΠΎ. ΠΠ°ΠΏΡΠΈΠΌΠ΅Ρ:
12 = 1100
12 >> 1 = 0110 = 6
12 >> 2 = 0011 = 3
12 >> 3 = 0001 = 1
Π ΡΡΠ΅ΡΡΠ΅ΠΌ ΡΠ»ΡΡΠ°Π΅ ΠΌΡ ΡΠ½ΠΎΠ²Π° ΠΏΠ΅ΡΠ΅ΠΌΠ΅ΡΡΠΈΠ»ΠΈ Π±ΠΈΡ Π·Π° ΠΏΡΠ΅Π΄Π΅Π»Ρ Π»ΠΈΡΠ΅ΡΠ°Π»Π°. ΠΠ½ ΡΠ°ΠΊΠΆΠ΅ ΠΏΠΎΡΠ΅ΡΡΠ»ΡΡ Π½Π°Π²ΡΠ΅Π³Π΄Π°.
Π₯ΠΎΡΡ Π² ΠΏΡΠΈΠΌΠ΅ΡΠ°Ρ , ΠΏΡΠΈΠ²Π΅Π΄Π΅Π½Π½ΡΡ Π²ΡΡΠ΅, ΠΌΡ ΡΠΌΠ΅ΡΠ°Π΅ΠΌ Π±ΠΈΡΡ ΡΠΎΠ»ΡΠΊΠΎ Π² Π»ΠΈΡΠ΅ΡΠ°Π»Π°Ρ , ΠΌΡ ΡΠ°ΠΊΠΆΠ΅ ΠΌΠΎΠΆΠ΅ΠΌ ΡΠΌΠ΅ΡΠ°ΡΡ Π±ΠΈΡΡ ΠΈ Π² ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΡΡ :
ΠΠΈΡΠΎΠ²ΡΠ΅ ΠΎΠΏΠ΅ΡΠ°ΡΠΈΠΈ
ΠΠ°Π½Π½ΡΠΉ ΡΡΠΎΠΊ ΠΏΠΎΡΠ²ΡΡΡΠ½ Π±ΠΈΡΠΎΠ²ΡΠΌ ΠΎΠΏΠ΅ΡΠ°ΡΠΈΡΠΌ (ΠΎΠΏΠ΅ΡΠ°ΡΠΈΡΠΌ Ρ Π±ΠΈΡΠ°ΠΌΠΈ, Π±ΠΈΡΠΎΠ²ΠΎΠΉ ΠΌΠ°ΡΠ΅ΠΌΠ°ΡΠΈΠΊΠ΅, bitmath), ΠΈΠ· Π½Π΅Π³ΠΎ Π²Ρ ΡΠ·Π½Π°Π΅ΡΠ΅, ΠΊΠ°ΠΊ ΠΎΠΏΠ΅ΡΠΈΡΠΎΠ²Π°ΡΡ Ρ Π±ΠΈΡΠ°ΠΌΠΈ β ΡΠ»Π΅ΠΌΠ΅Π½ΡΠ°ΡΠ½ΡΠΌΠΈ ΡΡΠ΅ΠΉΠΊΠ°ΠΌΠΈ ΠΏΠ°ΠΌΡΡΠΈ ΠΌΠΈΠΊΡΠΎΠΊΠΎΠ½ΡΡΠΎΠ»Π»Π΅ΡΠ°. ΠΡ ΡΠΆΠ΅ ΡΡΠ°Π»ΠΊΠΈΠ²Π°Π»ΠΈΡΡ Ρ Π±ΠΈΡΠΎΠ²ΡΠΌΠΈ ΠΎΠΏΠ΅ΡΠ°ΡΠΈΡΠΌΠΈ Π² ΡΡΠΎΠΊΠ΅ ΠΏΡΠΎ ΡΠ΅Π³ΠΈΡΡΡΡ ΠΌΠΈΠΊΡΠΎΠΊΠΎΠ½ΡΡΠΎΠ»Π»Π΅ΡΠ°, ΡΠ΅ΠΉΡΠ°Ρ ΡΠ°ΡΡΠΌΠΎΡΡΠΈΠΌ Π²ΡΡ ΠΌΠ°ΠΊΡΠΈΠΌΠ°Π»ΡΠ½ΠΎ ΠΏΠΎΠ΄ΡΠΎΠ±Π½ΠΎ. ΠΠ°Π½Π½Π°Ρ ΡΠ΅ΠΌΠ° ΡΠ²Π»ΡΠ΅ΡΡΡ ΠΎΠ΄Π½ΠΎΠΉ ΠΈΠ· ΡΠ°ΠΌΡΡ
ΡΠ»ΠΎΠΆΠ½ΡΡ
Π΄Π»Ρ ΠΏΠΎΠ½ΠΈΠΌΠ°Π½ΠΈΡ Π² ΡΠ°ΠΌΠΊΠ°Ρ
Π΄Π°Π½Π½ΠΎΠ³ΠΎ ΠΊΡΡΡΠ° ΡΡΠΎΠΊΠΎΠ², ΡΠ°ΠΊ ΡΡΠΎ Π΄Π°Π²Π°ΠΉΡΠ΅ ΡΠ°Π·Π±Π΅ΡΡΠΌΡΡ, Π·Π°ΡΠ΅ΠΌ Π²ΠΎΠΎΠ±ΡΠ΅ Π½ΡΠΆΠ½ΠΎ ΡΠΌΠ΅ΡΡ ΡΠ°Π±ΠΎΡΠ°ΡΡ Ρ Π±ΠΈΡΠ°ΠΌΠΈ:
ΠΠ°Π½Π½ΡΠΉ ΡΡΠΎΠΊ ΠΎΡΠ½ΠΎΠ²Π°Π½ Π½Π° ΠΎΡΠΈΠ³ΠΈΠ½Π°Π»ΡΠ½ΠΎΠΌ ΡΡΠΎΠΊΠ΅ ΠΏΠΎ Π±ΠΈΡΠΎΠ²ΡΠΌ ΠΎΠΏΠ΅ΡΠ°ΡΠΈΡΠΌ ΠΎΡ Arduino, ΠΌΠΎΠΆΠ΅ΡΠ΅ ΠΏΠΎΡΠΈΡΠ°ΡΡ Π΅Π³ΠΎ Π·Π΄Π΅ΡΡ β ΡΠ°ΠΌ Π²ΡΡ ΠΎΠΏΠΈΡΠ°Π½ΠΎ ΡΡΡΡ Π±ΠΎΠ»Π΅Π΅ ΠΏΠΎΠ΄ΡΠΎΠ±Π½ΠΎ.
ΠΠ²ΠΎΠΈΡΠ½Π°Ρ ΡΠΈΡΡΠ΅ΠΌΠ° ΠΈ Ρ ΡΠ°Π½Π΅Π½ΠΈΠ΅ Π΄Π°Π½Π½ΡΡ
2 Π² ΡΡΠ΅ΠΏΠ΅Π½ΠΈ | DEC | BIN |
0 | 1 | 0b00000001 |
1 | 2 | 0b00000010 |
2 | 4 | 0b00000100 |
3 | 8 | 0b00001000 |
4 | 16 | 0b00010000 |
5 | 32 | 0b00100000 |
6 | 64 | 0b01000000 |
7 | 128 | 0b10000000 |
Π’Π°ΠΊΠΈΠΌ ΠΎΠ±ΡΠ°Π·ΠΎΠΌ, ΡΡΠ΅ΠΏΠ΅Π½Ρ Π΄Π²ΠΎΠΉΠΊΠΈ ΡΠ²Π½ΠΎ βΡΠΊΠ°Π·ΡΠ²Π°Π΅Ρβ Π½Π° Π½ΠΎΠΌΠ΅Ρ Π±ΠΈΡΠ° Π² Π±Π°ΠΉΡΠ΅, ΡΡΠΈΡΠ°Ρ ΡΠΏΡΠ°Π²Π° Π½Π°Π»Π΅Π²ΠΎ (ΠΏΡΠΈΠΌΠ΅ΡΠ°Π½ΠΈΠ΅: Π² Π΄ΡΡΠ³ΠΈΡ Π°ΡΡ ΠΈΡΠ΅ΠΊΡΡΡΠ°Ρ ΠΌΠΎΠΆΠ΅Ρ Π±ΡΡΡ ΠΈΠ½Π°ΡΠ΅). ΠΠ°ΠΏΠΎΠΌΠ½Ρ, ΡΡΠΎ Π°Π±ΡΠΎΠ»ΡΡΠ½ΠΎ Π½Π΅Π²Π°ΠΆΠ½ΠΎ, Π² ΠΊΠ°ΠΊΠΎΠΉ ΡΠΈΡΡΠ΅ΠΌΠ΅ ΠΈΡΡΠΈΡΠ»Π΅Π½ΠΈΡ Π²Ρ ΡΠ°Π±ΠΎΡΠ°Π΅ΡΠ΅ β ΠΌΠΈΠΊΡΠΎΠΊΠΎΠ½ΡΡΠΎΠ»Π»Π΅ΡΡ Π²ΡΡ ΡΠ°Π²Π½ΠΎ ΠΈ ΠΎΠ½ Π²ΠΎ Π²ΡΡΠΌ Π²ΠΈΠ΄ΠΈΡ Π΅Π΄ΠΈΠ½ΠΈΡΡ ΠΈ Π½ΡΠ»ΠΈ. ΠΡΠ»ΠΈ βΡΠ»ΠΎΠΆΠΈΡΡβ ΠΏΠΎΠ»Π½ΡΠΉ Π±Π°ΠΉΡ Π² Π΄Π΅ΡΡΡΠΈΡΠ½ΠΎΠΌ ΠΏΡΠ΅Π΄ΡΡΠ°Π²Π»Π΅Π½ΠΈΠΈ Π±ΠΈΡΠΎΠ², ΡΠΎ ΠΌΡ ΠΏΠΎΠ»ΡΡΠΈΠΌ ΠΊΠ°ΠΊ ΡΠ°Π· 255: 128+64+32+16+8+4+2+1 = 255. ΠΠ΅ΡΡΡΠ΄Π½ΠΎ Π΄ΠΎΠ³Π°Π΄Π°ΡΡΡΡ, ΡΡΠΎ ΡΠΈΡΠ»ΠΎ 0b11000000 ΡΠ°Π²Π½ΠΎ 128+64, ΡΠΎ Π΅ΡΡΡ 192. ΠΠΌΠ΅Π½Π½ΠΎ ΡΠ°ΠΊΠΈΠΌ ΠΎΠ±ΡΠ°Π·ΠΎΠΌ ΠΈ ΠΏΠΎΠ»ΡΡΠ°Π΅ΡΡΡ Π²Π΅ΡΡ Π΄ΠΈΠ°ΠΏΠ°Π·ΠΎΠ½ ΠΎΡ 0 Π΄ΠΎ 255, ΠΊΠΎΡΠΎΡΡΠΉ ΡΠΌΠ΅ΡΠ°Π΅ΡΡΡ Π² ΠΎΠ΄ΠΈΠ½ Π±Π°ΠΉΡ. ΠΡΠ»ΠΈ Π²Π·ΡΡΡ Π΄Π²Π° Π±Π°ΠΉΡΠ° β Π±ΡΠ΄Π΅Ρ Π²ΡΡ ΡΠΎ ΠΆΠ΅ ΡΠ°ΠΌΠΎΠ΅, ΠΏΡΠΎΡΡΠΎ ΡΡΠ΅Π΅ΠΊ Π±ΡΠ΄Π΅Ρ 16, ΡΠΎ ΠΆΠ΅ ΡΠ°ΠΌΠΎΠ΅ Π΄Π»Ρ 4 Π±Π°ΠΉΡ β 32 ΡΡΠ΅ΠΉΠΊΠΈ Ρ Π΅Π΄ΠΈΠ½ΠΈΡΠ°ΠΌΠΈ ΠΈ Π½ΡΠ»ΡΠΌΠΈ, ΠΊΠ°ΠΆΠ΄Π°Ρ ΠΈΠΌΠ΅Π΅Ρ ΡΠ²ΠΎΠΉ Π½ΠΎΠΌΠ΅Ρ ΡΠΎΠ³Π»Π°ΡΠ½ΠΎ ΡΡΠ΅ΠΏΠ΅Π½ΠΈ Π΄Π²ΠΎΠΉΠΊΠΈ. ΠΠ°Π²Π°ΠΉΡΠ΅ Π½Π°ΡΠ½ΡΠΌ ΠΌΠ°Π½ΠΈΠΏΡΠ»ΡΡΠΈΠΈ Ρ Π±ΠΈΡΠ°ΠΌΠΈ Ρ ΡΠ°ΠΌΠΎΠ³ΠΎ ΠΏΡΠΎΡΡΠΎΠ³ΠΎ β Ρ ΠΌΠ°ΠΊΡΠΎ-ΡΡΠ½ΠΊΡΠΈΠΉ, ΠΊΠΎΡΠΎΡΡΠ΅ ΠΈΠ΄ΡΡ βΠ² ΠΊΠΎΠΌΠΏΠ»Π΅ΠΊΡΠ΅β Ρ ΡΠ΄ΡΠΎΠΌ Arduino.
ΠΠ°ΠΊΡΠΎΡΡ Π΄Π»Ρ ΠΌΠ°Π½ΠΈΠΏΡΠ»ΡΡΠΈΠΉ Ρ Π±ΠΈΡΠ°ΠΌΠΈ
Π βΠ±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠ΅β Arduino.h Π΅ΡΡΡ Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΎ ΡΠ΄ΠΎΠ±Π½ΡΡ ΠΌΠ°ΠΊΡΠΎΡΠΎΠ², ΠΊΠΎΡΠΎΡΡΠ΅ ΠΏΠΎΠ·Π²ΠΎΠ»ΡΡΡ Π²ΠΊΠ»ΡΡΠ°ΡΡ ΠΈ Π²ΡΠΊΠ»ΡΡΠ°ΡΡ Π±ΠΈΡΡ Π² Π±Π°ΠΉΡΠ΅:
ΠΠ°ΠΊΡΠΎΡΡ Arduino.h | ΠΠ΅ΠΉΡΡΠ²ΠΈΠ΅ |
bitRead(value, bit) | Π§ΠΈΡΠ°Π΅Ρ Π±ΠΈΡ ΠΏΠΎΠ΄ Π½ΠΎΠΌΠ΅ΡΠΎΠΌ bit Π² ΡΠΈΡΠ»Π΅ value |
bitSet(value, bit) | ΠΠΊΠ»ΡΡΠ°Π΅Ρ (ΡΡΠ°Π²ΠΈΡ 1) Π±ΠΈΡ ΠΏΠΎΠ΄ Π½ΠΎΠΌΠ΅ΡΠΎΠΌ bit Π² ΡΠΈΡΠ»Π΅ value |
bitClear(value, bit) | ΠΡΠΊΠ»ΡΡΠ°Π΅Ρ (ΡΡΠ°Π²ΠΈΡ 0) Π±ΠΈΡ ΠΏΠΎΠ΄ Π½ΠΎΠΌΠ΅ΡΠΎΠΌ bit Π² ΡΠΈΡΠ»Π΅ value |
bitWrite(value, bit, bitvalue) | Π‘ΡΠ°Π²ΠΈΡ Π±ΠΈΡ ΠΏΠΎΠ΄ Π½ΠΎΠΌΠ΅ΡΠΎΠΌ bit Π² ΡΠΎΡΡΠΎΡΠ½ΠΈΠ΅ bitvalue (0 ΠΈΠ»ΠΈ 1) Π² ΡΠΈΡΠ»Π΅ value |
bit(bit) | ΠΠΎΠ·Π²ΡΠ°ΡΠ°Π΅Ρ 2 Π² ΡΡΠ΅ΠΏΠ΅Π½ΠΈ bit |
ΠΡΡΠ³ΠΈΠ΅ Π²ΡΡΡΠΎΠ΅Π½Π½ΡΠ΅ ΠΌΠ°ΠΊΡΠΎΡΡ | |
_BV(bit) | ΠΠΎΠ·Π²ΡΠ°ΡΠ°Π΅Ρ 2 Π² ΡΡΠ΅ΠΏΠ΅Π½ΠΈ bit |
bit_is_set(value, bit) | ΠΡΠΎΠ²Π΅ΡΠΊΠ° Π½Π° Π²ΠΊΠ»ΡΡΠ΅Π½Π½ΠΎΡΡΡ (1) Π±ΠΈΡΠ° bit Π² ΡΠΈΡΠ»Π΅ value |
bit_is_clear(value, bit) | ΠΡΠΎΠ²Π΅ΡΠΊΠ° Π½Π° Π²ΡΠΊΠ»ΡΡΠ΅Π½Π½ΠΎΡΡΡ (0) Π±ΠΈΡΠ° bit Π² ΡΠΈΡΠ»Π΅ value |
ΠΠΈΡΠΎΠ²ΡΠ΅ ΠΎΠΏΠ΅ΡΠ°ΡΠΈΠΈ
ΠΠ΅ΡΠ΅Ρ ΠΎΠ΄ΠΈΠΌ ΠΊ Π±ΠΎΠ»Π΅Π΅ ΡΠ»ΠΎΠΆΠ½ΡΠΌ Π²Π΅ΡΠ°ΠΌ. ΠΠ° ΡΠ°ΠΌΠΎΠΌ Π΄Π΅Π»Π΅ ΠΎΠ½ΠΈ ΠΌΠ°ΠΊΡΠΈΠΌΠ°Π»ΡΠ½ΠΎ ΠΏΡΠΎΡΡΡ Π΄Π»Ρ ΠΌΠΈΠΊΡΠΎΠΊΠΎΠ½ΡΡΠΎΠ»Π»Π΅ΡΠ°, Π½Π°ΡΡΠΎΠ»ΡΠΊΠΎ ΠΏΡΠΎΡΡΡ, ΡΡΠΎ Π²ΡΠΏΠΎΠ»Π½ΡΡΡΡΡ Π·Π° ΠΎΠ΄ΠΈΠ½ ΡΠ°ΠΊΡ. ΠΡΠΈ ΡΠ°ΡΡΠΎΡΠ΅ 16 ΠΠΡ (Π±ΠΎΠ»ΡΡΠΈΠ½ΡΡΠ²ΠΎ ΠΏΠ»Π°Ρ Arduino) ΠΎΠ΄Π½Π° ΠΎΠΏΠ΅ΡΠ°ΡΠΈΡ Π·Π°Π½ΠΈΠΌΠ°Π΅Ρ 0.0625 ΠΌΠΈΠΊΡΠΎΡΠ΅ΠΊΡΠ½Π΄Ρ.
ΠΠΈΡΠΎΠ²ΠΎΠ΅ Π
Π (AND), ΠΎΠ½ΠΎ ΠΆΠ΅ βΠ»ΠΎΠ³ΠΈΡΠ΅ΡΠΊΠΎΠ΅ ΡΠΌΠ½ΠΎΠΆΠ΅Π½ΠΈΠ΅β, Π²ΡΠΏΠΎΠ»Π½ΡΠ΅ΡΡΡ ΠΎΠΏΠ΅ΡΠ°ΡΠΎΡΠΎΠΌ & ΠΈΠ»ΠΈ and ΠΈ Π²ΠΎΠ·Π²ΡΠ°ΡΠ°Π΅Ρ ΡΠ»Π΅Π΄ΡΡΡΠ΅Π΅:
ΠΡΠ½ΠΎΠ²Π½ΠΎΠ΅ ΠΏΡΠΈΠΌΠ΅Π½Π΅Π½ΠΈΠ΅ ΠΎΠΏΠ΅ΡΠ°ΡΠΈΠΈ Π β Π±ΠΈΡΠΎΠ²Π°Ρ ΠΌΠ°ΡΠΊΠ°. ΠΠΎΠ·Π²ΠΎΠ»ΡΠ΅Ρ βΠ²Π·ΡΡΡβ ΠΈΠ· Π±Π°ΠΉΡΠ° ΡΠΎΠ»ΡΠΊΠΎ ΡΠΊΠ°Π·Π°Π½Π½ΡΠ΅ Π±ΠΈΡΡ:
Π’ΠΎ Π΅ΡΡΡ ΠΏΡΠΈ ΠΏΠΎΠΌΠΎΡΠΈ & ΠΌΡ Π²Π·ΡΠ»ΠΈ ΠΈΠ· Π±Π°ΠΉΡΠ° 0b11001100 ΡΠΎΠ»ΡΠΊΠΎ Π±ΠΈΡΡ 10000111, Π° ΠΈΠΌΠ΅Π½Π½ΠΎ β 0b11001100, ΠΈ ΠΏΠΎΠ»ΡΡΠΈΠ»ΠΈ 0b10000100 Π’Π°ΠΊΠΆΠ΅ ΠΌΠΎΠΆΠ½ΠΎ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ ΡΠΎΡΡΠ°Π²Π½ΠΎΠΉ ΠΎΠΏΠ΅ΡΠ°ΡΠΎΡ &=
ΠΠΈΡΠΎΠ²ΠΎΠ΅ ΠΠΠ
ΠΠΠ (OR), ΠΎΠ½ΠΎ ΠΆΠ΅ βΠ»ΠΎΠ³ΠΈΡΠ΅ΡΠΊΠΎΠ΅ ΡΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅β, Π²ΡΠΏΠΎΠ»Π½ΡΠ΅ΡΡΡ ΠΎΠΏΠ΅ΡΠ°ΡΠΎΡΠΎΠΌ | ΠΈΠ»ΠΈ or ΠΈ Π²ΠΎΠ·Π²ΡΠ°ΡΠ°Π΅Ρ ΡΠ»Π΅Π΄ΡΡΡΠ΅Π΅:
ΠΡΠ½ΠΎΠ²Π½ΠΎΠ΅ ΠΏΡΠΈΠΌΠ΅Π½Π΅Π½ΠΈΠ΅ ΠΎΠΏΠ΅ΡΠ°ΡΠΈΠΈ ΠΠΠ β ΡΡΡΠ°Π½ΠΎΠ²ΠΊΠ° Π±ΠΈΡΠ° Π² Π±Π°ΠΉΡΠ΅:
Π’Π°ΠΊΠΆΠ΅ ΠΌΠΎΠΆΠ½ΠΎ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ ΡΠΎΡΡΠ°Π²Π½ΠΎΠΉ ΠΎΠΏΠ΅ΡΠ°ΡΠΎΡ |=
ΠΡ ΡΠΆΠ΅ ΠΏΠΎΠ½ΡΠ»ΠΈ, ΡΡΠΎ ΡΠΊΠ°Π·ΡΠ²Π°ΡΡ Π½Π° Π½ΡΠΆΠ½ΡΠ΅ Π±ΠΈΡΡ ΠΌΠΎΠΆΠ½ΠΎ Π»ΡΠ±ΡΠΌ ΡΠ΄ΠΎΠ±Π½ΡΠΌ ΡΠΏΠΎΡΠΎΠ±ΠΎΠΌ: Π² Π±ΠΈΠ½Π°ΡΠ½ΠΎΠΌ Π²ΠΈΠ΄Π΅ (0b00000001 β Π½ΡΠ»Π΅Π²ΠΎΠΉ Π±ΠΈΡ), Π² Π΄Π΅ΡΡΡΠΈΡΠ½ΠΎΠΌ Π²ΠΈΠ΄Π΅ (16 β ΡΠ΅ΡΠ²ΡΡΡΡΠΉ Π±ΠΈΡ) ΠΈΠ»ΠΈ ΠΏΡΠΈ ΠΏΠΎΠΌΠΎΡΠΈ ΠΌΠ°ΠΊΡΠΎΡΠΎΠ² bit() ΠΈΠ»ΠΈ _BV() ( bit(7) Π΄Π°ΡΡ 128 ΠΈΠ»ΠΈ 0b10000000, _BV(7) Π΄Π΅Π»Π°Π΅Ρ ΡΠΎ ΠΆΠ΅ ΡΠ°ΠΌΠΎΠ΅)
ΠΠΈΡΠΎΠ²ΠΎΠ΅ ΠΠ
ΠΠΈΡΠΎΠ²Π°Ρ ΠΎΠΏΠ΅ΡΠ°ΡΠΈΡ ΠΠ (NOT) Π²ΡΠΏΠΎΠ»Π½ΡΠ΅ΡΡΡ ΠΎΠΏΠ΅ΡΠ°ΡΠΎΡΠΎΠΌ
ΠΈ ΠΏΡΠΎΡΡΠΎ ΠΈΠ½Π²Π΅ΡΡΠΈΡΡΠ΅Ρ Π±ΠΈΡ:
Π’Π°ΠΊΠΆΠ΅ ΠΎΠ½Π° ΠΌΠΎΠΆΠ΅Ρ ΠΈΠ½Π²Π΅ΡΡΠΈΡΠΎΠ²Π°ΡΡ Π±Π°ΠΉΡ:
ΠΠΈΡΠΎΠ²ΠΎΠ΅ ΠΈΡΠΊΠ»ΡΡΠ°ΡΡΠ΅Π΅ ΠΠΠ
ΠΠΈΡΠΎΠ²Π°Ρ ΠΎΠΏΠ΅ΡΠ°ΡΠΈΡ ΠΈΡΠΊΠ»ΡΡΠ°ΡΡΠ΅Π΅ ΠΠΠ (XOR) Π²ΡΠΏΠΎΠ»Π½ΡΠ΅ΡΡΡ ΠΎΠΏΠ΅ΡΠ°ΡΠΎΡΠΎΠΌ ^ ΠΈΠ»ΠΈ xor ΠΈ Π΄Π΅Π»Π°Π΅Ρ ΡΠ»Π΅Π΄ΡΡΡΠ΅Π΅:
ΠΠ°Π½Π½Π°Ρ ΠΎΠΏΠ΅ΡΠ°ΡΠΈΡ ΠΎΠ±ΡΡΠ½ΠΎ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΡΡΡ Π΄Π»Ρ ΠΈΠ½Π²Π΅ΡΡΠΈΡΠΎΠ²Π°Π½ΠΈΡ ΡΠΎΡΡΠΎΡΠ½ΠΈΡ ΠΎΡΠ΄Π΅Π»ΡΠ½ΠΎΠ³ΠΎ Π±ΠΈΡΠ°:
Π’ΠΎ Π΅ΡΡΡ ΠΌΡ Π²Π·ΡΠ»ΠΈ Π±ΠΈΡ β7 Π² Π±Π°ΠΉΡΠ΅ 0b11001100 ΠΈ ΠΏΠ΅ΡΠ΅Π²Π΅ΡΠ½ΡΠ»ΠΈ Π΅Π³ΠΎ Π² 0, ΠΏΠΎΠ»ΡΡΠΈΠ»ΠΎΡΡ 0b01001100, ΠΎΡΡΠ°Π»ΡΠ½ΡΠ΅ Π±ΠΈΡΡ Π½Π΅ ΡΡΠΎΠ³Π°Π»ΠΈ.
ΠΠΈΡΠΎΠ²ΡΠΉ ΡΠ΄Π²ΠΈΠ³
ΠΠΈΡΠΎΠ²ΡΠΉ ΡΠ΄Π²ΠΈΠ³ Π΄Π΅Π»Π°Π΅Ρ Π½Π΅ ΡΡΠΎ ΠΈΠ½ΠΎΠ΅, ΠΊΠ°ΠΊ ΡΠΌΠ½ΠΎΠΆΠ°Π΅Ρ ΠΈΠ»ΠΈ Π΄Π΅Π»ΠΈΡ Π±Π°ΠΉΡ Π½Π° 2 Π² ΡΡΠ΅ΠΏΠ΅Π½ΠΈ. ΠΠ°, ΡΡΠΎ ΠΎΠΏΠ΅ΡΠ°ΡΠΈΡ Π΄Π΅Π»Π΅Π½ΠΈΡ, Π²ΡΠΏΠΎΠ»Π½ΡΡΡΠ°ΡΡΡ Π·Π° ΠΎΠ΄ΠΈΠ½ ΡΠ°ΠΊΡ ΠΏΡΠΎΡΠ΅ΡΡΠΎΡΠ°! Π ΡΡΠΎΠΌΡ ΠΌΡ Π΅ΡΡ Π²Π΅ΡΠ½ΡΠΌΡΡ Π½ΠΈΠΆΠ΅. ΠΠΎΡΠΌΠΎΡΡΠΈΡΠ΅ Π½Π° ΡΠ°Π±ΠΎΡΡ ΠΎΠΏΠ΅ΡΠ°ΡΠΎΡΠ° ΡΠ΄Π²ΠΈΠ³Π° ΠΈ ΡΡΠ°Π²Π½ΠΈΡΠ΅ Π΅Ρ Ρ ΠΌΠ°ΠΊΡΠΎΡΠ°ΠΌΠΈ bit() ΠΈ _BV() :
ΠΠΊΠ»ΡΡΠ°Π΅ΠΌ-Π²ΡΠΊΠ»ΡΡΠ°Π΅ΠΌ
ΠΡΠΏΠΎΠΌΠ½ΠΈΠΌ ΠΏΡΠΈΠΌΠ΅Ρ ΠΈΠ· ΠΏΡΠ½ΠΊΡΠ° ΠΏΡΠΎ Π±ΠΈΡΠΎΠ²ΠΎΠ΅ ΠΠΠ, ΠΏΡΠΎ ΡΡΡΠ°Π½ΠΎΠ²ΠΊΡ Π½ΡΠΆΠ½ΠΎΠ³ΠΎ Π±ΠΈΡΠ°. ΠΠΎΡ ΡΡΠΈ Π²Π°ΡΠΈΠ°Π½ΡΡ ΠΊΠΎΠ΄Π° Π΄Π΅Π»Π°ΡΡ ΠΎΠ΄Π½ΠΎ ΠΈ ΡΠΎ ΠΆΠ΅:
ΠΠ°ΠΊ Π½Π°ΡΡΡΡ ΡΡΡΠ°Π½ΠΎΠ²ΠΊΠΈ Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΈΡ Π±ΠΈΡ ΡΡΠ°Π·Ρ?
ΠΠ»ΠΈ ΠΏΡΠΈΡΠ΅Π»ΡΠ½ΠΎΠ³ΠΎ Π²ΡΠΊΠ»ΡΡΠ΅Π½ΠΈΡ Π±ΠΈΡ? Π’ΡΡ ΡΡΡΡ ΠΏΠΎ-Π΄ΡΡΠ³ΠΎΠΌΡ, ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΡ &= ΠΈ
ΠΡΠΊΠ»ΡΡΠΈΡΡ Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΎ Π±ΠΈΡ ΡΡΠ°Π·Ρ? ΠΠΎΠΆΠ°Π»ΡΠΉΡΡΠ°!
ΠΠΌΠ΅Π½Π½ΠΎ ΡΠ°ΠΊΠΈΠ΅ ΠΊΠΎΠ½ΡΡΡΡΠΊΡΠΈΠΈ Π²ΡΡΡΠ΅ΡΠ°ΡΡΡΡ Π² ΠΊΠΎΠ΄Π΅ Π²ΡΡΠΎΠΊΠΎΠ³ΠΎ ΡΡΠΎΠ²Π½Ρ ΠΈ Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠ°Ρ , ΠΈΠΌΠ΅Π½Π½ΠΎ ΡΠ°ΠΊ ΠΏΡΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡΡΡ ΡΠ°Π±ΠΎΡΠ° Ρ ΡΠ΅Π³ΠΈΡΡΡΠ°ΠΌΠΈ ΠΌΠΈΠΊΡΠΎΠΊΠΎΠ½ΡΡΠΎΠ»Π»Π΅ΡΠ°. ΠΠ΅ΡΠ½ΡΠΌΡΡ ΠΊ ΡΡΡΡΠΎΠΉΡΡΠ²Ρ ΠΡΠ΄ΡΠΈΠ½ΠΎΠ²ΡΠΊΠΈΡ ΠΌΠ°ΠΊΡΠΎΡΠΎΠ²:
Π― Π΄ΡΠΌΠ°Ρ, ΠΊΠΎΠΌΠΌΠ΅Π½ΡΠ°ΡΠΈΠΈ ΠΈΠ·Π»ΠΈΡΠ½ΠΈ: ΠΌΠ°ΠΊΡΠΎΡΡ ΡΠΎΡΡΠΎΡΡ ΠΈΠ· ΡΠ΅Ρ ΠΆΠ΅ ΡΠ»Π΅ΠΌΠ΅Π½ΡΠ°ΡΠ½ΡΡ Π±ΠΈΡΠΎΠ²ΡΡ ΠΎΠΏΠ΅ΡΠ°ΡΠΈΠΉ ΠΈ ΡΠ΄Π²ΠΈΠ³ΠΎΠ²!
ΠΡΡΡΡΡΠ΅ Π²ΡΡΠΈΡΠ»Π΅Π½ΠΈΡ
ΠΠ°ΠΊ Ρ ΡΠΆΠ΅ Π³ΠΎΠ²ΠΎΡΠΈΠ», Π±ΠΈΡΠΎΠ²ΡΠ΅ ΠΎΠΏΠ΅ΡΠ°ΡΠΈΠΈ β ΡΠ°ΠΌΡΠ΅ Π±ΡΡΡΡΡΠ΅. ΠΡΠ»ΠΈ ΡΡΠ΅Π±ΡΠ΅ΡΡΡ ΠΌΠ°ΠΊΡΠΈΠΌΠ°Π»ΡΠ½Π°Ρ ΡΠΊΠΎΡΠΎΡΡΡ Π²ΡΡΠΈΡΠ»Π΅Π½ΠΈΠΉ β ΠΈΡ ΠΌΠΎΠΆΠ½ΠΎ ΠΎΠΏΡΠΈΠΌΠΈΠ·ΠΈΡΠΎΠ²Π°ΡΡ ΠΈ ΠΏΠΎΠ΄ΠΎΠ³Π½Π°ΡΡ ΠΏΠΎΠ΄ βΡΡΠ΅ΠΏΠ΅Π½ΠΈ Π΄Π²ΠΎΠΉΠΊΠΈβ, Π½ΠΎ ΠΈΠ½ΠΎΠ³Π΄Π° ΠΊΠΎΠΌΠΏΠΈΠ»ΡΡΠΎΡ Π΄Π΅Π»Π°Π΅Ρ ΡΡΠΎ ΡΠ°ΠΌ, ΠΏΠΎΠ΄ΡΠΎΠ±Π½Π΅Π΅ ΡΠΌΠΎΡΡΠΈ Π² ΡΡΠΎΠΊΠ΅ ΠΏΡΠΎ ΠΎΠΏΡΠΈΠΌΠΈΠ·Π°ΡΠΈΡ ΠΊΠΎΠ΄Π°. Π Π°ΡΡΠΌΠΎΡΡΠΈΠΌ Π±Π°Π·ΠΎΠ²ΡΠ΅ ΠΎΠΏΠ΅ΡΠ°ΡΠΈΠΈ:
ΠΡΠΈΠΌΠ΅ΡΠ°Π½ΠΈΠ΅: ΡΠ°ΡΡΠΌΠΎΡΡΠ΅Π½Π½ΡΠ΅ Π²ΡΡΠ΅ ΠΎΠΏΠ΅ΡΠ°ΡΠΈΠΈ ΡΠ°Π±ΠΎΡΠ°ΡΡ ΡΠΎΠ»ΡΠΊΠΎ Ρ ΡΠ΅Π»ΠΎΡΠΈΡΠ»Π΅Π½Π½ΡΠΌΠΈ ΡΠΈΠΏΠ°ΠΌΠΈ Π΄Π°Π½Π½ΡΡ !
ΠΠΊΠΎΠ½ΠΎΠΌΠΈΡ ΠΏΠ°ΠΌΡΡΠΈ
ΠΡΠΈ ΠΏΠΎΠΌΠΎΡΠΈ Π±ΠΈΡΠΎΠ²ΡΡ ΠΎΠΏΠ΅ΡΠ°ΡΠΈΠΉ ΠΌΠΎΠΆΠ½ΠΎ ΡΠΊΠΎΠ½ΠΎΠΌΠΈΡΡ Π½Π΅ΠΌΠ½ΠΎΠ³ΠΎ ΠΏΠ°ΠΌΡΡΠΈ, ΠΏΠ°ΠΊΡΡ Π΄Π°Π½Π½ΡΠ΅ Π² Π±Π»ΠΎΠΊΠΈ. ΠΠ°ΠΏΡΠΈΠΌΠ΅Ρ, ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½Π°Ρ ΡΠΈΠΏΠ° boolean Π·Π°Π½ΠΈΠΌΠ°Π΅Ρ Π² ΠΏΠ°ΠΌΡΡΠΈ 8 Π±ΠΈΡ, Ρ ΠΎΡΡ ΠΏΡΠΈΠ½ΠΈΠΌΠ°Π΅Ρ ΡΠΎΠ»ΡΠΊΠΎ 0 ΠΈ 1. Π ΠΎΠ΄ΠΈΠ½ Π±Π°ΠΉΡ ΠΌΠΎΠΆΠ½ΠΎ Π·Π°ΠΏΠ°ΠΊΠΎΠ²Π°ΡΡ 8 Π»ΠΎΠ³ΠΈΡΠ΅ΡΠΊΠΈΡ ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΡΡ , Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ Π²ΠΎΡ ΡΠ°ΠΊ:
ΠΡΡ ΠΈΠ½ΡΠ΅ΡΠ΅ΡΠ½ΡΠΉ ΠΏΡΠΈΠΌΠ΅Ρ ΡΠΆΠ°ΡΠΈΡ
Π’Π°ΠΊΠΈΠΌ ΠΎΠ±ΡΠ°Π·ΠΎΠΌ ΠΌΡ ΠΎΡΠ±ΡΠΎΡΠΈΠ»ΠΈ Ρ ΠΊΡΠ°ΡΠ½ΠΎΠ³ΠΎ ΠΈ ΡΠΈΠ½Π΅Π³ΠΎ ΠΌΠ»Π°Π΄ΡΠΈΠ΅ (ΠΏΡΠ°Π²ΡΠ΅) Π±ΠΈΡΡ, Π² ΡΡΠΎΠΌ ΠΈ Π·Π°ΠΊΠ»ΡΡΠ°Π΅ΡΡΡ ΡΠΆΠ°ΡΠΈΠ΅. Π§Π΅ΠΌ Π±ΠΎΠ»ΡΡΠ΅ Π±ΠΈΡΠΎΠ² ΠΎΡΠ±ΡΠΎΡΠ΅Π½ΠΎ β ΡΠ΅ΠΌ ΠΌΠ΅Π½Π΅Π΅ ΡΠΎΡΠ½ΠΎ ΠΏΠΎΠ»ΡΡΠΈΡΡΡ βΡΠ°Π·ΠΆΠ°ΡΡβ ΡΠΈΡΠ»ΠΎ. ΠΠ°ΠΏΡΠΈΠΌΠ΅Ρ ΡΠΆΠΈΠΌΠ°Π»ΠΈ ΡΠΈΡΠ»ΠΎ 0b10101010 (170 Π² Π΄Π΅ΡΡΡΠΈΡΠ½ΠΎΠΉ) Π½Π° ΡΡΠΈ Π±ΠΈΡΠ°, ΠΏΡΠΈ ΡΠΆΠ°ΡΠΈΠΈ ΠΏΠΎΠ»ΡΡΠΈΠ»ΠΈ 0b10101000, Ρ.Π΅. ΠΏΠΎΡΠ΅ΡΡΠ»ΠΈ ΡΡΠΈ ΠΌΠ»Π°Π΄ΡΠΈΡ Π±ΠΈΡΠ°, ΠΈ Π² Π΄Π΅ΡΡΡΠΈΡΠ½ΠΎΠΉ ΡΠΆΠ΅ ΠΏΠΎΠ»ΡΡΠΈΡΡΡ 168. ΠΠ»Ρ ΡΠΏΠ°ΠΊΠΎΠ²ΠΊΠΈ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΡΡΡ Π±ΠΈΡΠΎΠ²ΡΠΉ ΡΠ΄Π²ΠΈΠ³ ΠΈ ΠΌΠ°ΡΠΊΠ°, ΡΠ°ΠΊΠΈΠΌ ΠΎΠ±ΡΠ°Π·ΠΎΠΌ ΠΌΡ Π±Π΅ΡΡΠΌ ΠΏΠ΅ΡΠ²ΡΠ΅ ΠΏΡΡΡ Π±ΠΈΡΠΎΠ² ΠΊΡΠ°ΡΠ½ΠΎΠ³ΠΎ, ΡΠ΅ΡΡΡ Π·Π΅Π»ΡΠ½ΠΎΠ³ΠΎ ΠΈ ΠΏΡΡΡ ΡΠΈΠ½Π΅Π³ΠΎ, ΠΈ Π·Π°Π΄Π²ΠΈΠ³Π°Π΅ΠΌ Π½Π° Π½ΡΠΆΠ½ΡΠ΅ ΠΌΠ΅ΡΡΠ° Π² ΡΠ΅Π·ΡΠ»ΡΡΠΈΡΡΡΡΠ΅ΠΉ 16-Π±ΠΈΡΠ½ΠΎΠΉ ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΠΎΠΉ. ΠΡΡ, ΡΠ²Π΅Ρ ΡΠΆΠ°Ρ ΠΈ Π΅Π³ΠΎ ΠΌΠΎΠΆΠ½ΠΎ Ρ ΡΠ°Π½ΠΈΡΡ. ΠΠ»Ρ ΡΠ°ΡΠΏΠ°ΠΊΠΎΠ²ΠΊΠΈ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΡΡΡ ΠΎΠ±ΡΠ°ΡΠ½Π°Ρ ΠΎΠΏΠ΅ΡΠ°ΡΠΈΡ: Π²ΡΠ±ΠΈΡΠ°Π΅ΠΌ ΠΏΡΠΈ ΠΏΠΎΠΌΠΎΡΠΈ ΠΌΠ°ΡΠΊΠΈ Π½ΡΠΆΠ½ΡΠ΅ Π±ΠΈΡΡ ΠΈ ΡΠ΄Π²ΠΈΠ³Π°Π΅ΠΌ ΠΈΡ ΠΎΠ±ΡΠ°ΡΠ½ΠΎ Π² Π±Π°ΠΉΡ:
ΠΠ°ΠΊ ΠΈ Π² ΠΏΡΠΈΠΌΠ΅ΡΠ΅ ΡΠΎ ΡΠ²Π΅ΡΠΎΠ΄ΠΈΠΎΠ΄Π°ΠΌΠΈ, ΠΌΡ ΠΏΡΠΎΡΡΠΎ Π±ΡΠ°Π»ΠΈ Π½ΡΠΆΠ½ΡΠ΅ Π±ΠΈΡΡ ( Π² ΡΡΠΎΠΌ ΡΠ»ΡΡΠ°Π΅ ΠΌΠ»Π°Π΄ΡΠΈΠ΅ Π΄Π²Π°, 0b11 ) ΠΈ ΡΠ΄Π²ΠΈΠ³Π°Π»ΠΈ ΠΈΡ Π½Π° Π½ΡΠΆΠ½ΠΎΠ΅ ΡΠ°ΡΡΡΠΎΡΠ½ΠΈΠ΅. ΠΠ»Ρ ΡΠ°ΡΠΏΠ°ΠΊΠΎΠ²ΠΊΠΈ Π΄Π΅Π»Π°Π΅ΠΌ Π² ΠΎΠ±ΡΠ°ΡΠ½ΠΎΠΌ ΠΏΠΎΡΡΠ΄ΠΊΠ΅:
Π ΠΏΠΎΠ»ΡΡΠΈΠΌ ΠΎΠ±ΡΠ°ΡΠ½ΠΎ Π½Π°ΡΠΈ Π±Π°ΠΉΡΡ. Π’Π°ΠΊΠΆΠ΅ ΠΌΠ°ΡΠΊΡ ΠΌΠΎΠΆΠ½ΠΎ Π·Π°ΠΌΠ΅Π½ΠΈΡΡ Π½Π° Π±ΠΎΠ»Π΅Π΅ ΡΠ΄ΠΎΠ±Π½ΡΡ Π΄Π»Ρ ΡΠ°Π±ΠΎΡΡ Π·Π°ΠΏΠΈΡΡ, Π·Π°Π΄Π²ΠΈΠ½ΡΠ² 0b11 Π½Π° Π½ΡΠΆΠ½ΠΎΠ΅ ΡΠ°ΡΡΡΠΎΡΠ½ΠΈΠ΅:
ΠΡ ΠΈ ΡΠ΅ΠΏΠ΅ΡΡ, ΠΏΡΠΎΡΠ»Π΅Π΄ΠΈΠ² Π·Π°ΠΊΠΎΠ½ΠΎΠΌΠ΅ΡΠ½ΠΎΡΡΡ, ΠΌΠΎΠΆΠ½ΠΎ ΡΠ΄Π΅Π»Π°ΡΡ Π΄Π»Ρ ΡΠ΅Π±Ρ ΡΡΠ½ΠΊΡΠΈΡ ΠΈΠ»ΠΈ ΠΌΠ°ΠΊΡΠΎΡ ΡΡΠ΅Π½ΠΈΡ ΠΏΠ°ΠΊΠ΅ΡΠ°:
ΠΠ΄Π΅ x ΡΡΠΎ ΠΏΠ°ΠΊΠ΅Ρ, Π° y β ΠΏΠΎΡΡΠ΄ΠΊΠΎΠ²ΡΠΉ Π½ΠΎΠΌΠ΅Ρ Π·Π°ΠΏΠ°ΠΊΠΎΠ²Π°Π½Π½ΠΎΠ³ΠΎ Π·Π½Π°ΡΠ΅Π½ΠΈΡ. ΠΡΠ²Π΅Π΄Π΅ΠΌ ΠΏΠΎΡΠΌΠΎΡΡΠΈΠΌ:
βΠ’ΡΡΠΊΠΈβ Ρ Π±ΠΈΡΠ°ΠΌΠΈ
ΠΠ° Π±ΠΈΡΠΎΠ²ΡΡ ΠΎΠΏΠ΅ΡΠ°ΡΠΈΡΡ ΠΌΠΎΠΆΠ½ΠΎ ΡΠ΄Π΅Π»Π°ΡΡ ΠΎΡΠ΅Π½Ρ ΠΌΠ½ΠΎΠ³ΠΎ Π²ΡΠ΅Π³ΠΎ ΠΈΠ½ΡΠ΅ΡΠ΅ΡΠ½ΠΎΠ³ΠΎ, ΠΈ ΡΠ°Π±ΠΎΡΠ°ΡΡ ΠΎΠ½ΠΎ Π±ΡΠ΄Π΅Ρ ΠΎΡΠ΅Π½Ρ Π±ΡΡΡΡΠΎ ΠΈ Π·Π°Π½ΠΈΠΌΠ°ΡΡ ΠΌΠ°Π»ΠΎ ΠΌΠ΅ΡΡΠ°. ΠΠ³ΡΠΎΠΌΠ½ΡΠΉ ΡΠΏΠΈΡΠΎΠΊ Π±ΠΈΡΠΎΠ²ΡΡ ΡΡΡΠΊΠΎΠ² ΠΈ Ρ Π°ΠΊΠΎΠ² ΠΌΠΎΠΆΠ½ΠΎ ΠΏΠΎΡΠΌΠΎΡΡΠ΅ΡΡ Π² ΡΡΠΎΠΉ ΡΡΠ°ΡΡΠ΅, ΠΈΡ ΡΠ°ΠΌ ΠΎΡΠ΅Π½Ρ ΠΌΠ½ΠΎΠ³ΠΎ ΠΈ Π²ΡΠ΅ Ρ ΠΏΡΠΈΠΌΠ΅ΡΠ°ΠΌΠΈ. ΠΡΡΡ Π΅ΡΡ ΠΎΠ΄ΠΈΠ½ Π½Π΅Π±ΠΎΠ»ΡΡΠΎΠΉ ΡΠ±ΠΎΡΠ½ΠΈΠΊ ΡΠ°ΠΌΡΡ ΠΏΡΠΎΡΡΡΡ ΠΈ ΠΏΠΎΠ»Π΅Π·Π½ΡΡ Ρ Π°ΠΊΠΎΠ² Π²ΠΎΡ Π·Π΄Π΅ΡΡ (Π°Π½Π³Π»ΠΈΠΉΡΠΊΠΈΠΉ). ΠΠ³ΠΎ Ρ ΠΏΠ΅ΡΠ΅Π²ΡΠ», ΡΠΌΠΎΡΡΠΈΡΠ΅ Π½ΠΈΠΆΠ΅ ΠΏΠΎΠ΄ ΡΠΏΠΎΠΉΠ»Π΅ΡΠΎΠΌ. ΠΡΡΠ³ΠΎΠΉ Π²Π°ΡΠΈΠ°Π½Ρ ΠΏΠ΅ΡΠ΅Π²ΠΎΠ΄Π° (ΠΌΠΎΠ³ΡΡ Π±ΡΡΡ Π½Π΅ Π²ΡΠ΅ ΡΡΡΠΊΠΈ) ΠΌΠΎΠΆΠ½ΠΎ ΠΏΠΎΡΠΌΠΎΡΡΠ΅ΡΡ Π·Π΄Π΅ΡΡ.
ΠΠ΅ΡΠ΅ΠΌΠΎΡΠΊΠ° Π±ΠΈΡΠ°
Π¦Π΅Π»ΡΠ΅
Π£ΡΡΠ°Π½ΠΎΠ²ΠΊΠ° n Π³ΠΎ Π±ΠΈΡΠ°
ΠΡΠΊΠ»ΡΡΠ΅Π½ΠΈΠ΅ n Π³ΠΎ Π±ΠΈΡΠ°
ΠΠ½Π²Π΅ΡΡΠΈΡ n Π³ΠΎ Π±ΠΈΡΠ°
ΠΠΊΡΡΠ³Π»Π΅Π½ΠΈΠ΅ Π΄ΠΎ Π±Π»ΠΈΠΆΠ°ΠΉΡΠ΅ΠΉ ΡΡΠ΅ΠΏΠ΅Π½ΠΈ Π΄Π²ΠΎΠΉΠΊΠΈ
ΠΠΊΡΡΠ³Π»Π΅Π½ΠΈΠ΅ Π²Π½ΠΈΠ·
ΠΠΎΠ»ΡΡΠ΅Π½ΠΈΠ΅ ΠΌΠ°ΠΊΡΠΈΠΌΠ°Π»ΡΠ½ΠΎΠ³ΠΎ ΡΠ΅Π»ΠΎΠ³ΠΎ
ΠΠΎΠ»ΡΡΠ΅Π½ΠΈΠ΅ ΠΌΠΈΠ½ΠΈΠΌΠ°Π»ΡΠ½ΠΎΠ³ΠΎ ΡΠ΅Π»ΠΎΠ³ΠΎ
ΠΠΎΠ»ΡΡΠ΅Π½ΠΈΠ΅ ΠΌΠ°ΠΊΡΠΈΠΌΠ°Π»ΡΠ½ΠΎΠ³ΠΎ long
Π£ΠΌΠ½ΠΎΠΆΠ΅Π½ΠΈΠ΅ Π½Π° 2
ΠΠ΅Π»Π΅Π½ΠΈΠ΅ Π½Π° 2
Π£ΠΌΠ½ΠΎΠΆΠ΅Π½ΠΈΠ΅ Π½Π° m ΡΡ ΡΡΠ΅ΠΏΠ΅Π½Ρ Π΄Π²ΠΎΠΉΠΊΠΈ
ΠΠ΅Π»Π΅Π½ΠΈΠ΅ Π½Π° m ΡΡ ΡΡΠ΅ΠΏΠ΅Π½Ρ Π΄Π²ΠΎΠΉΠΊΠΈ
ΠΡΡΠ°ΡΠΎΠΊ ΠΎΡ Π΄Π΅Π»Π΅Π½ΠΈΡ
ΠΡΠΎΠ²Π΅ΡΠΊΠ° ΡΠ°Π²Π΅Π½ΡΡΠ²Π°
ΠΡΠΎΠ²Π΅ΡΠΊΠ° Π½Π° ΡΡΡΠ½ΠΎΡΡΡ (ΠΊΡΠ°ΡΠ½ΠΎΡΡΡ 2)
ΠΠ±ΠΌΠ΅Π½ Π·Π½Π°ΡΠ΅Π½ΠΈΡΠΌΠΈ
ΠΠΎΠ»ΡΡΠ΅Π½ΠΈΠ΅ Π°Π±ΡΠΎΠ»ΡΡΠ½ΠΎΠ³ΠΎ Π·Π½Π°ΡΠ΅Π½ΠΈΡ
ΠΠ°ΠΊΡΠΈΠΌΡΠΌ ΠΈΠ· Π΄Π²ΡΡ
ΠΠΈΠ½ΠΈΠΌΡΠΌ ΠΈΠ· Π΄Π²ΡΡ
ΠΡΠΎΠ²Π΅ΡΠΊΠ° Π½Π° ΠΎΠ΄ΠΈΠ½Π°ΠΊΠΎΠ²ΡΠΉ Π·Π½Π°ΠΊ
Π‘ΠΌΠ΅Π½Π° Π·Π½Π°ΠΊΠ°
ΠΠ΅ΡΠ½ΡΡ 2 n
Π―Π²Π»ΡΠ΅ΡΡΡ Π»ΠΈ ΡΠΈΡΠ»ΠΎ ΡΡΠ΅ΠΏΠ΅Π½ΡΡ 2
ΠΡΡΠ°ΡΠΎΠΊ ΠΎΡ Π΄Π΅Π»Π΅Π½ΠΈΡ Π½Π° 2 n Π½Π° m
Π‘ΡΠ΅Π΄Π½Π΅Π΅ Π°ΡΠΈΡΠΌΠ΅ΡΠΈΡΠ΅ΡΠΊΠΎΠ΅
ΠΠΎΠ»ΡΡΠΈΡΡ m ΡΠΉ Π±ΠΈΡ ΠΈΠ· n (ΠΎΡ ΠΌΠ»Π°Π΄ΡΠ΅Π³ΠΎ ΠΊ ΡΡΠ°ΡΡΠ΅ΠΌΡ)
ΠΠΎΠ»ΡΡΠΈΡΡ m ΡΠΉ Π±ΠΈΡ ΠΈΠ· n (ΠΎΡ ΡΡΠ°ΡΡΠ΅Π³ΠΎ ΠΊ ΠΌΠ»Π°Π΄ΡΠ΅ΠΌΡ)
ΠΡΠΎΠ²Π΅ΡΠΈΡΡ Π²ΠΊΠ»ΡΡΠ΅Π½ Π»ΠΈ n ΡΠΉ Π±ΠΈΡ
ΠΡΠ΄Π΅Π»Π΅Π½ΠΈΠ΅ ΡΠ°ΠΌΠΎΠ³ΠΎ ΠΏΡΠ°Π²ΠΎΠ³ΠΎ Π²ΠΊΠ»ΡΡΠ΅Π½Π½ΠΎΠ³ΠΎ Π±ΠΈΡΠ°
ΠΡΠ΄Π΅Π»Π΅Π½ΠΈΠ΅ ΡΠ°ΠΌΠΎΠ³ΠΎ ΠΏΡΠ°Π²ΠΎΠ³ΠΎ Π²ΡΠΊΠ»ΡΡΠ΅Π½Π½ΠΎΠ³ΠΎ Π±ΠΈΡΠ°
ΠΡΠ΄Π΅Π»Π΅Π½ΠΈΠ΅ ΠΏΡΠ°Π²ΠΎΠ³ΠΎ Π²ΠΊΠ»ΡΡΠ΅Π½Π½ΠΎΠ³ΠΎ Π±ΠΈΡΠ°
ΠΡΠ΄Π΅Π»Π΅Π½ΠΈΠ΅ ΠΏΡΠ°Π²ΠΎΠ³ΠΎ Π²ΡΠΊΠ»ΡΡΠ΅Π½Π½ΠΎΠ³ΠΎ Π±ΠΈΡΠ°
n + 1
n β 1
ΠΠΎΠ»ΡΡΠ΅Π½ΠΈΠ΅ ΠΎΡΡΠΈΡΠ°ΡΠ΅Π»ΡΠ½ΠΎΠ³ΠΎ Π·Π½Π°ΡΠ΅Π½ΠΈΡ
if (x == a) x = b; if (x == b) x = a;
ΠΠΎΠΌΠ΅Π½ΡΡΡ ΡΠΌΠ΅ΠΆΠ½ΡΠ΅ Π±ΠΈΡΡ
Different rightmost bit of numbers m & n
Common rightmost bit of numbers m & n
ΠΠ΅ΡΡΡΠΈΡΠ½ΡΠ΅ Π΄ΡΠΎΠ±ΠΈ
ΠΡΠΈΠΌΠ΅ΡΠ°Π½ΠΈΠ΅: Ρ Π°ΠΊΠΈ Ρ float ΠΌΠΎΠ³ΡΡ Π½Π΅ ΡΠ°Π±ΠΎΡΠ°ΡΡ Π½Π° ΠΡΠ΄ΡΠΈΠ½ΠΎ! Π Π°Π·Π±ΠΈΡΡ float Π² ΠΌΠ°ΡΡΠΈΠ² Π±ΠΈΡ (unsigned uint32_t)
ΠΠ΅ΡΠ½ΡΡΡ ΠΌΠ°ΡΡΠΈΠ² Π±ΠΈΡ ΠΎΠ±ΡΠ°ΡΠ½ΠΎ Π² float
ΠΡΡΡΡΡΠΉ ΠΎΠ±ΡΠ°ΡΠ½ΡΠΉ ΠΊΠ²Π°Π΄ΡΠ°ΡΠ½ΡΠΉ ΠΊΠΎΡΠ΅Π½Ρ
ΠΡΡΡΡΡΠΉ n ΡΠΉ ΠΊΠΎΡΠ΅Π½Ρ ΠΈΠ· ΡΠ΅Π»ΠΎΠ³ΠΎ ΡΠΈΡΠ»Π°
ΠΡΡΡΡΠ°Ρ ΡΡΠ΅ΠΏΠ΅Π½Ρ
ΠΡΡΡΡΡΠΉ Π½Π°ΡΡΡΠ°Π»ΡΠ½ΡΠΉ Π»ΠΎΠ³Π°ΡΠΈΡΠΌ
ΠΡΡΡΡΠ°Ρ ΡΠΊΡΠΏΠΎΠ½Π΅Π½ΡΠ°
Π‘ΡΡΠΎΠΊΠΈ
ΠΠΎΠ½Π²Π΅ΡΡΠΈΡΠΎΠ²Π°ΡΡ Π² Π½ΠΈΠΆΠ½ΠΈΠΉ ΡΠ΅Π³ΠΈΡΡΡ
ΠΠΎΠ½Π²Π΅ΡΡΠΈΡΠΎΠ²Π°ΡΡ Π² Π²Π΅ΡΡ Π½ΠΈΠΉ ΡΠ΅Π³ΠΈΡΡΡ
ΠΠ½Π²Π΅ΡΡΠΈΡΠΎΠ²Π°ΡΡ ΡΠ΅Π³ΠΈΡΡΡ
ΠΠΎΠ·ΠΈΡΠΈΡ Π±ΡΠΊΠ²Ρ Π² Π°Π»ΡΠ°Π²ΠΈΡΠ΅ (Π°Π½Π³Π»)
ΠΠΎΠ·ΠΈΡΠΈΡ Π±ΠΎΠ»ΡΡΠΎΠΉ Π±ΡΠΊΠ²Ρ Π² Π°Π»ΡΠ°Π²ΠΈΡΠ΅ (Π°Π½Π³Π»)
ΠΠΎΠ·ΠΈΡΠΈΡ ΡΡΡΠΎΡΠ½ΠΎΠΉ Π±ΡΠΊΠ²Ρ Π² Π°Π»ΡΠ°Π²ΠΈΡΠ΅ (Π°Π½Π³Π»)
ΠΡΡΠ³ΠΎΠ΅
ΠΡΡΡΡΠ°Ρ ΠΊΠΎΠ½Π²Π΅ΡΡΠ°ΡΠΈΡ ΡΠ²Π΅ΡΠ° R5G5B5 Π² R8G8B8
ΠΡΠΈΠΎΡΠΈΡΠ΅Ρ ΠΎΠΏΠ΅ΡΠ°ΡΠΈΠΉ
Π§ΡΠΎΠ±Ρ Π½Π΅ ΠΏΠ»ΠΎΠ΄ΠΈΡΡ ΡΠΊΠΎΠ±ΠΊΠΈ, Π½ΡΠΆΠ½ΠΎ Π·Π½Π°ΡΡ ΠΏΡΠΈΠΎΡΠΈΡΠ΅Ρ ΠΎΠΏΠ΅ΡΠ°ΡΠΈΠΉ. Π C++ ΠΎΠ½ ΡΠ°ΠΊΠΎΠΉ:
Π Π±ΠΈΡΠΎΠ²ΡΡ ΠΎΠΏΠ΅ΡΠ°ΡΠΈΡΡ
ΠΠ²ΡΠΎΡΠΈΠ·ΡΠΉΡΠ΅ΡΡ
Π Π±ΠΈΡΠΎΠ²ΡΡ ΠΎΠΏΠ΅ΡΠ°ΡΠΈΡΡ
Π ΡΡΠΎΠΉ ΡΡΠ°ΡΡΠ΅ Ρ ΡΠ°ΡΡΠΊΠ°ΠΆΡ Π²Π°ΠΌ ΠΎ ΡΠΎΠΌ, ΠΊΠ°ΠΊ ΡΠ°Π±ΠΎΡΠ°ΡΡ Π±ΠΈΡΠΎΠ²ΡΠ΅ ΠΎΠΏΠ΅ΡΠ°ΡΠΈΠΈ. Π‘ ΠΏΠ΅ΡΠ²ΠΎΠ³ΠΎ Π²Π·Π³Π»ΡΠ΄Π° ΠΎΠ½ΠΈ ΠΌΠΎΠ³ΡΡ ΠΏΠΎΠΊΠ°Π·Π°ΡΡΡΡ Π²Π°ΠΌ ΡΠ΅ΠΌ-ΡΠΎ ΡΠ»ΠΎΠΆΠ½ΡΠΌ ΠΈ Π±Π΅ΡΠΏΠΎΠ»Π΅Π·Π½ΡΠΌ, Π½ΠΎ Π½Π° ΡΠ°ΠΌΠΎΠΌ Π΄Π΅Π»Π΅ ΡΡΠΎ ΡΠΎΠ²ΡΠ΅ΠΌ Π½Π΅ ΡΠ°ΠΊ. Π ΡΡΠΎΠΌ Ρ ΠΈ ΠΏΠΎΠΏΡΡΠ°ΡΡΡ Π²Π°Ρ ΡΠ±Π΅Π΄ΠΈΡΡ.
ΠΠ²Π΅Π΄Π΅Π½ΠΈΠ΅
ΠΠΎΠ±ΠΈΡΠΎΠ²ΡΠ΅ ΠΎΠΏΠ΅ΡΠ°ΡΠΎΡΡ ΠΏΡΠΎΠ²ΠΎΠ΄ΡΡ ΠΎΠΏΠ΅ΡΠ°ΡΠΈΠΈ Π½Π΅ΠΏΠΎΡΡΠ΅Π΄ΡΡΠ²Π΅Π½Π½ΠΎ Π½Π° Π±ΠΈΡΠ°Ρ ΡΠΈΡΠ»Π°, ΠΏΠΎΡΡΠΎΠΌΡ ΡΠΈΡΠ»Π° Π² ΠΏΡΠΈΠΌΠ΅ΡΠ°Ρ Π±ΡΠ΄ΡΡ Π² Π΄Π²ΠΎΠΈΡΠ½ΠΎΠΉ ΡΠΈΡΡΠ΅ΠΌΠ΅ ΡΡΠΈΡΠ»Π΅Π½ΠΈΡ.
Π― ΡΠ°ΡΡΠΊΠ°ΠΆΡ ΠΎ ΡΠ»Π΅Π΄ΡΡΡΠΈΡ ΠΏΠΎΠ±ΠΈΡΠΎΠ²ΡΡ ΠΎΠΏΠ΅ΡΠ°ΡΠΎΡΠ°Ρ :
ΠΠΈΡΠΎΠ²ΡΠ΅ ΠΎΠΏΠ΅ΡΠ°ΡΠΈΠΈ ΠΈΠ·ΡΡΠ°ΡΡΡΡ Π² Π΄ΠΈΡΠΊΡΠ΅ΡΠ½ΠΎΠΉ ΠΌΠ°ΡΠ΅ΠΌΠ°ΡΠΈΠΊΠ΅, Π° ΡΠ°ΠΊΠΆΠ΅ Π»Π΅ΠΆΠ°Ρ Π² ΠΎΡΠ½ΠΎΠ²Π΅ ΡΠΈΡΡΠΎΠ²ΠΎΠΉ ΡΠ΅Ρ Π½ΠΈΠΊΠΈ, ΡΠ°ΠΊ ΠΊΠ°ΠΊ Π½Π° Π½ΠΈΡ ΠΎΡΠ½ΠΎΠ²Π°Π½Π° Π»ΠΎΠ³ΠΈΠΊΠ° ΡΠ°Π±ΠΎΡΡ Π»ΠΎΠ³ΠΈΡΠ΅ΡΠΊΠΈΡ Π²Π΅Π½ΡΠΈΠ»Π΅ΠΉ β Π±Π°Π·ΠΎΠ²ΡΡ ΡΠ»Π΅ΠΌΠ΅Π½ΡΠΎΠ² ΡΠΈΡΡΠΎΠ²ΡΡ ΡΡ Π΅ΠΌ. Π Π΄ΠΈΡΠΊΡΠ΅ΡΠ½ΠΎΠΉ ΠΌΠ°ΡΠ΅ΠΌΠ°ΡΠΈΠΊΠ΅, ΠΊΠ°ΠΊ ΠΈ Π² ΡΠΈΡΡΠΎΠ²ΠΎΠΉ ΡΠ΅Ρ Π½ΠΈΠΊΠ΅, Π΄Π»Ρ ΠΎΠΏΠΈΡΠ°Π½ΠΈΡ ΠΈΡ ΡΠ°Π±ΠΎΡΡ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΡΡΡΡ ΡΠ°Π±Π»ΠΈΡΡ ΠΈΡΡΠΈΠ½Π½ΠΎΡΡΠΈ. Π’Π°Π±Π»ΠΈΡΡ ΠΈΡΡΠΈΠ½Π½ΠΎΡΡΠΈ, ΠΊΠ°ΠΊ ΠΌΠ½Π΅ ΠΊΠ°ΠΆΠ΅ΡΡΡ, Π·Π½Π°ΡΠΈΡΠ΅Π»ΡΠ½ΠΎ ΠΎΠ±Π»Π΅Π³ΡΠ°ΡΡ ΠΏΠΎΠ½ΠΈΠΌΠ°Π½ΠΈΠ΅ Π±ΠΈΡΠΎΠ²ΡΡ ΠΎΠΏΠ΅ΡΠ°ΡΠΈΠΉ, ΠΏΠΎΡΡΠΎΠΌΡ Ρ ΠΏΡΠΈΠ²Π΅Π΄Ρ ΠΈΡ Π² ΡΡΠΎΠΉ ΡΡΠ°ΡΡΠ΅. ΠΡ , ΡΠ΅ΠΌ Π½Π΅ ΠΌΠ΅Π½Π΅Π΅, ΠΏΠΎΡΡΠΈ Π½Π΅ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΡΡ Π² ΠΎΠ±ΡΡΡΠ½Π΅Π½ΠΈΡΡ ΠΏΠΎΠ±ΠΈΡΠΎΠ²ΡΡ ΠΎΠΏΠ΅ΡΠ°ΡΠΎΡΠΎΠ² Π²ΡΡΠΎΠΊΠΎΡΡΠΎΠ²Π½Π΅Π²ΡΡ ΡΠ·ΡΠΊΠΎΠ² ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠΈΡΠΎΠ²Π°Π½ΠΈΡ.
Π Π±ΠΈΡΠΎΠ²ΡΡ ΠΎΠΏΠ΅ΡΠ°ΡΠΎΡΠ°Ρ Π²Π°ΠΌ ΡΠ°ΠΊΠΆΠ΅ Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΠΎ Π·Π½Π°ΡΡ:
ΠΠΎΠ±ΠΈΡΠΎΠ²ΠΎΠ΅ ΠΠΠ (OR)
ΠΠΎΠ±ΠΈΡΠΎΠ²ΠΎΠ΅ ΠΠΠ Π΄Π΅ΠΉΡΡΠ²ΡΠ΅Ρ ΡΠΊΠ²ΠΈΠ²Π°Π»Π΅Π½ΡΠ½ΠΎ Π»ΠΎΠ³ΠΈΡΠ΅ΡΠΊΠΎΠΌΡ ΠΠΠ, Π½ΠΎ ΠΏΡΠΈΠΌΠ΅Π½Π΅Π½Π½ΠΎΠΌΡ ΠΊ ΠΊΠ°ΠΆΠ΄ΠΎΠΉ ΠΏΠ°ΡΠ΅ Π±ΠΈΡΠΎΠ² Π΄Π²ΠΎΠΈΡΠ½ΠΎΠ³ΠΎ ΡΠΈΡΠ»Π°. ΠΠ²ΠΎΠΈΡΠ½ΡΠΉ ΡΠ°Π·ΡΡΠ΄ ΡΠ΅Π·ΡΠ»ΡΡΠ°ΡΠ° ΡΠ°Π²Π΅Π½ 0 ΡΠΎΠ»ΡΠΊΠΎ ΡΠΎΠ³Π΄Π°, ΠΊΠΎΠ³Π΄Π° ΠΎΠ±Π° ΡΠΎΠΎΡΠ²Π΅ΡΡΡΠ²ΡΡΡΠΈΡ Π±ΠΈΡΠ° Π² ΡΠ°Π²Π½Ρ 0. ΠΠΎ Π²ΡΠ΅Ρ Π΄ΡΡΠ³ΠΈΡ ΡΠ»ΡΡΠ°ΡΡ Π΄Π²ΠΎΠΈΡΠ½ΡΠΉ ΡΠ΅Π·ΡΠ»ΡΡΠ°Ρ ΡΠ°Π²Π΅Π½ 1. Π’ΠΎ Π΅ΡΡΡ, Π΅ΡΠ»ΠΈ Ρ Π½Π°Ρ Π΅ΡΡΡ ΡΠ»Π΅Π΄ΡΡΡΠ°Ρ ΡΠ°Π±Π»ΠΈΡΠ° ΠΈΡΡΠΈΠ½Π½ΠΎΡΡΠΈ:
38 | 53 Π±ΡΠ΄Π΅Ρ ΡΠ°ΠΊΠΈΠΌ:
A | 0 | 0 | 1 | 0 | 0 | 1 | 1 | 0 |
---|---|---|---|---|---|---|---|---|
B | 0 | 0 | 1 | 1 | 0 | 1 | 0 | 1 |
A | B | 0 | 0 | 1 | 1 | 0 | 1 | 1 | 1 |
ΠΠΎΠ±ΠΈΡΠΎΠ²ΠΎΠ΅ Π (AND)
ΠΠΎΠ±ΠΈΡΠΎΠ²ΠΎΠ΅ Π β ΡΡΠΎ ΡΡΠΎ-ΡΠΎ Π²ΡΠΎΠ΄Π΅ ΠΎΠΏΠ΅ΡΠ°ΡΠΈΠΈ, ΠΏΡΠΎΡΠΈΠ²ΠΎΠΏΠΎΠ»ΠΎΠΆΠ½ΠΎΠΉ ΠΏΠΎΠ±ΠΈΡΠΎΠ²ΠΎΠΌΡ ΠΠΠ. ΠΠ²ΠΎΠΈΡΠ½ΡΠΉ ΡΠ°Π·ΡΡΠ΄ ΡΠ΅Π·ΡΠ»ΡΡΠ°ΡΠ° ΡΠ°Π²Π΅Π½ 1 ΡΠΎΠ»ΡΠΊΠΎ ΡΠΎΠ³Π΄Π°, ΠΊΠΎΠ³Π΄Π° ΠΎΠ±Π° ΡΠΎΠΎΡΠ²Π΅ΡΡΡΠ²ΡΡΡΠΈΡ Π±ΠΈΡΠ° ΠΎΠΏΠ΅ΡΠ°Π½Π΄ΠΎΠ² ΡΠ°Π²Π½Ρ 1. ΠΡΡΠ³ΠΈΠΌΠΈ ΡΠ»ΠΎΠ²Π°ΠΌΠΈ, ΠΌΠΎΠΆΠ½ΠΎ ΡΠΊΠ°Π·Π°ΡΡ, Π΄Π²ΠΎΠΈΡΠ½ΡΠ΅ ΡΠ°Π·ΡΡΠ΄Ρ ΠΏΠΎΠ»ΡΡΠΈΠ²ΡΠ΅Π³ΠΎΡΡ ΡΠΈΡΠ»Π° β ΡΡΠΎ ΡΠ΅Π·ΡΠ»ΡΡΠ°Ρ ΡΠΌΠ½ΠΎΠΆΠ΅Π½ΠΈΡ ΡΠΎΠΎΡΠ²Π΅ΡΡΡΠ²ΡΡΡΠΈΡ Π±ΠΈΡΠΎΠ² ΠΎΠΏΠ΅ΡΠ°Π½Π΄Π°: 1Ρ 1 = 1, 1Ρ 0 = 0. ΠΠΎΠ±ΠΈΡΠΎΠ²ΠΎΠΌΡ Π ΡΠΎΠΎΡΠ²Π΅ΡΡΡΠ²ΡΠ΅Ρ ΡΠ»Π΅Π΄ΡΡΡΠ°Ρ ΡΠ°Π±Π»ΠΈΡΠ° ΠΈΡΡΠΈΠ½Π½ΠΎΡΡΠΈ:
ΠΡΠΈΠΌΠ΅Ρ ΡΠ°Π±ΠΎΡΡ ΠΏΠΎΠ±ΠΈΡΠΎΠ²ΠΎΠ³ΠΎ Π Π½Π° Π²ΡΡΠ°ΠΆΠ΅Π½ΠΈΠΈ 38 & 53:
A | 0 | 0 | 1 | 0 | 0 | 1 | 1 | 0 |
---|---|---|---|---|---|---|---|---|
B | 0 | 0 | 1 | 1 | 0 | 1 | 0 | 1 |
A & B | 0 | 0 | 1 | 0 | 0 | 1 | 0 | 0 |
ΠΡΠΊΠ»ΡΡΠ°ΡΡΠ΅Π΅ ΠΠΠ (XOR)
Π Π°Π·Π½ΠΈΡΠ° ΠΌΠ΅ΠΆΠ΄Ρ ΠΈΡΠΊΠ»ΡΡΠ°ΡΡΠΈΠΌ ΠΠΠ ΠΈ ΠΏΠΎΠ±ΠΈΡΠΎΠ²ΡΠΌ ΠΠΠ Π² ΡΠΎΠΌ, ΡΡΠΎ Π΄Π»Ρ ΠΏΠΎΠ»ΡΡΠ΅Π½ΠΈΡ 1 ΡΠΎΠ»ΡΠΊΠΎ ΠΎΠ΄ΠΈΠ½ Π±ΠΈΡ Π² ΠΏΠ°ΡΠ΅ ΠΌΠΎΠΆΠ΅Ρ Π±ΡΡΡ 1:
ΠΠ°ΠΏΡΠΈΠΌΠ΅Ρ, Π²ΡΡΠ°ΠΆΠ΅Π½ΠΈΠ΅ 138^43 Π±ΡΠ΄Π΅Ρ ΡΠ°Π²Π½ΠΎβ¦
A | 1 | 0 | 0 | 0 | 1 | 0 | 1 | 0 |
---|---|---|---|---|---|---|---|---|
B | 0 | 0 | 1 | 0 | 1 | 0 | 1 | 1 |
A ^ B | 1 | 0 | 1 | 0 | 0 | 0 | 0 | 1 |
Π‘ ΠΏΠΎΠΌΠΎΡΡΡ ^ ΠΌΠΎΠΆΠ½ΠΎ ΠΏΠΎΠΌΠ΅Π½ΡΡΡ Π·Π½Π°ΡΠ΅Π½ΠΈΡ Π΄Π²ΡΡ ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΡΡ (ΠΈΠΌΠ΅ΡΡΠΈΡ ΠΎΠ΄ΠΈΠ½Π°ΠΊΠΎΠ²ΡΠΉ ΡΠΈΠΏ Π΄Π°Π½Π½ΡΡ ) Π±Π΅Π· ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΡ Π²ΡΠ΅ΠΌΠ΅Π½Π½ΠΎΠΉ ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΠΎΠΉ.
Π’Π°ΠΊΠΆΠ΅ Ρ ΠΏΠΎΠΌΠΎΡΡΡ ΠΈΡΠΊΠ»ΡΡΠ°ΡΡΠ΅Π³ΠΎ ΠΠΠ ΠΌΠΎΠΆΠ½ΠΎ Π·Π°ΡΠΈΡΡΠΎΠ²Π°ΡΡ ΡΠ΅ΠΊΡΡ. ΠΠ»Ρ ΡΡΠΎΠ³ΠΎ Π½ΡΠΆΠ½ΠΎ Π»ΠΈΡΡ ΠΈΡΠ΅ΡΠΈΡΠΎΠ²Π°ΡΡ ΡΠ΅ΡΠ΅Π· Π²ΡΠ΅ ΡΠΈΠΌΠ²ΠΎΠ»Ρ, ΠΈ ^ ΠΈΡ Ρ ΡΠΈΠΌΠ²ΠΎΠ»ΠΎΠΌ-ΠΊΠ»ΡΡΠΎΠΌ. ΠΠ»Ρ Π±ΠΎΠ»Π΅Π΅ ΡΠ»ΠΎΠΆΠ½ΠΎΠ³ΠΎ ΡΠΈΡΡΠ° ΠΌΠΎΠΆΠ½ΠΎ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ ΡΡΡΠΎΠΊΡ ΡΠΈΠΌΠ²ΠΎΠ»ΠΎΠ²:
ΠΡΠΊΠ»ΡΡΠ°ΡΡΠ΅Π΅ ΠΠΠ Π½Π΅ ΡΠ°ΠΌΡΠΉ Π½Π°Π΄Π΅ΠΆΠ½ΡΠΉ ΡΠΏΠΎΡΠΎΠ± ΡΠΈΡΡΠΎΠ²ΠΊΠΈ, Π½ΠΎ Π΅Π³ΠΎ ΠΌΠΎΠΆΠ½ΠΎ ΡΠ΄Π΅Π»Π°ΡΡ ΡΠ°ΡΡΡΡ ΡΠΈΡΡΠΎΠ²Π°Π»ΡΠ½ΠΎΠ³ΠΎ Π°Π»Π³ΠΎΡΠΈΡΠΌΠ°.
ΠΠΎΠ±ΠΈΡΠΎΠ²ΠΎΠ΅ ΠΎΡΡΠΈΡΠ°Π½ΠΈΠ΅ (NOT)
ΠΠΎΠ±ΠΈΡΠΎΠ²ΠΎΠ΅ ΠΎΡΡΠΈΡΠ°Π½ΠΈΠ΅ ΠΈΠ½Π²Π΅ΡΡΠΈΡΡΠ΅Ρ Π²ΡΠ΅ Π±ΠΈΡΡ ΠΎΠΏΠ΅ΡΠ°Π½Π΄Π°. Π’ΠΎ Π΅ΡΡΡ, ΡΠΎ ΡΡΠΎ Π±ΡΠ»ΠΎ 1 ΡΡΠ°Π½Π΅Ρ 0, ΠΈ Π½Π°ΠΎΠ±ΠΎΡΠΎΡ.
ΠΠΎΡ, Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ, ΠΎΠΏΠ΅ΡΠ°ΡΠΈΡ
Π Π΅Π·ΡΠ»ΡΡΠ°ΡΠΎΠΌ Π±ΡΠ΄Π΅Ρ 20310
ΠΡΠΈ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠΈ ΠΏΠΎΠ±ΠΈΡΠΎΠ²ΠΎΠ³ΠΎ ΠΎΡΡΠΈΡΠ°Π½ΠΈΡ Π·Π½Π°ΠΊ ΡΠ΅Π·ΡΠ»ΡΡΠ°ΡΠ° Π²ΡΠ΅Π³Π΄Π° Π±ΡΠ΄Π΅Ρ ΠΏΡΠΎΡΠΈΠ²ΠΎΠΏΠΎΠ»ΠΎΠΆΠ΅Π½ Π·Π½Π°ΠΊΡ ΠΈΡΡ ΠΎΠ΄Π½ΠΎΠ³ΠΎ ΡΠΈΡΠ»Π° (ΠΏΡΠΈ ΡΠ°Π±ΠΎΡΠ΅ ΡΠΎ Π·Π½Π°ΠΊΠΎΠ²ΡΠΌΠΈ ΡΠΈΡΠ»Π°ΠΌΠΈ). ΠΠΎΡΠ΅ΠΌΡ ΡΠ°ΠΊ ΠΏΡΠΎΠΈΡΡ ΠΎΠ΄ΠΈΡ, ΡΠ·Π½Π°Π΅ΡΠ΅ ΠΏΡΡΠΌΠΎ ΡΠ΅ΠΉΡΠ°Ρ.
ΠΠΎΠΏΠΎΠ»Π½ΠΈΡΠ΅Π»ΡΠ½ΡΠΉ ΠΊΠΎΠ΄
ΠΠ΄Π΅ΡΡ ΠΌΠ½Π΅ ΡΡΠΎΠΈΡ ΡΠ°ΡΡΠΊΠ°Π·Π°ΡΡ Π²Π°ΠΌ Π½Π΅ΠΌΠ½ΠΎΠ³ΠΎ ΠΎ ΡΠΏΠΎΡΠΎΠ±Π΅ ΠΏΡΠ΅Π΄ΡΡΠ°Π²Π»Π΅Π½ΠΈΡ ΠΎΡΡΠΈΡΠ°ΡΠ΅Π»ΡΠ½ΡΡ ΡΠ΅Π»ΡΡ ΡΠΈΡΠ΅Π» Π² ΠΠΠ, Π° ΠΈΠΌΠ΅Π½Π½ΠΎ ΠΎ Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡΠ΅Π»ΡΠ½ΠΎΠΌ ΠΊΠΎΠ΄Π΅ (twoβs complement). ΠΠ΅ Π²Π΄Π°Π²Π°ΡΡΡ Π² ΠΏΠΎΠ΄ΡΠΎΠ±Π½ΠΎΡΡΠΈ, ΠΎΠ½ Π½ΡΠΆΠ΅Π½ Π΄Π»Ρ ΠΎΠ±Π»Π΅Π³ΡΠ΅Π½ΠΈΡ Π°ΡΠΈΡΠΌΠ΅ΡΠΈΠΊΠΈ Π΄Π²ΠΎΠΈΡΠ½ΡΡ ΡΠΈΡΠ΅Π».
ΠΠ»Π°Π²Π½ΠΎΠ΅, ΡΡΠΎ Π²Π°ΠΌ Π½ΡΠΆΠ½ΠΎ Π·Π½Π°ΡΡ ΠΎ ΡΠΈΡΠ»Π°Ρ , Π·Π°ΠΏΠΈΡΠ°Π½Π½ΡΡ Π² Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡΠ΅Π»ΡΠ½ΠΎΠΌ ΠΊΠΎΠ΄Π΅ β ΡΡΠΎ ΡΠΎ, ΡΡΠΎ ΡΡΠ°ΡΡΠΈΠΉ ΡΠ°Π·ΡΡΠ΄ ΡΠ²Π»ΡΠ΅ΡΡΡ Π·Π½Π°ΠΊΠΎΠ²ΡΠΌ. ΠΡΠ»ΠΈ ΠΎΠ½ ΡΠ°Π²Π΅Π½ 0, ΡΠΎ ΡΠΈΡΠ»ΠΎ ΠΏΠΎΠ»ΠΎΠΆΠΈΡΠ΅Π»ΡΠ½ΠΎΠ΅ ΠΈ ΡΠΎΠ²ΠΏΠ°Π΄Π°Π΅Ρ Ρ ΠΏΡΠ΅Π΄ΡΡΠ°Π²Π»Π΅Π½ΠΈΠ΅ΠΌ ΡΡΠΎΠ³ΠΎ ΡΠΈΡΠ»Π° Π² ΠΏΡΡΠΌΠΎΠΌ ΠΊΠΎΠ΄Π΅, Π° Π΅ΡΠ»ΠΈ 1 β ΡΠΎ ΠΎΠ½ΠΎ ΠΎΡΡΠΈΡΠ°ΡΠ΅Π»ΡΠ½ΠΎΠ΅. Π’ΠΎ Π΅ΡΡΡ, 10111101 β ΠΎΡΡΠΈΡΠ°ΡΠ΅Π»ΡΠ½ΠΎΠ΅ ΡΠΈΡΠ»ΠΎ, Π° 01000011 β ΠΏΠΎΠ»ΠΎΠΆΠΈΡΠ΅Π»ΡΠ½ΠΎΠ΅.
Π§ΡΠΎΠ±Ρ ΠΏΡΠ΅ΠΎΠ±ΡΠ°Π·ΠΎΠ²Π°ΡΡ ΠΎΡΡΠΈΡΠ°ΡΠ΅Π»ΡΠ½ΠΎΠ΅ ΡΠΈΡΠ»ΠΎ Π² Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡΠ΅Π»ΡΠ½ΡΠΉ ΠΊΠΎΠ΄, Π½ΡΠΆΠ½ΠΎ ΠΈΠ½Π²Π΅ΡΡΠΈΡΠΎΠ²Π°ΡΡ Π²ΡΠ΅ Π±ΠΈΡΡ ΡΠΈΡΠ»Π° (ΡΠΎ Π΅ΡΡΡ, ΠΏΠΎ ΡΡΡΠΈ, ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ ΠΏΠΎΠ±ΠΈΡΠΎΠ²ΠΎΠ΅ ΠΎΡΡΠΈΡΠ°Π½ΠΈΠ΅) ΠΈ Π΄ΠΎΠ±Π°Π²ΠΈΡΡ ΠΊ ΡΠ΅Π·ΡΠ»ΡΡΠ°ΡΡ 1.
ΠΠ°ΠΏΡΠΈΠΌΠ΅Ρ, Π΅ΡΠ»ΠΈ ΠΌΡ ΠΈΠΌΠ΅Π΅ΠΌ 109:
A | 0 | 1 | 1 | 0 | 1 | 1 | 0 | 1 |
A+1 | 1 | 0 | 0 | 1 | 0 | 0 | 1 | 1 |
ΠΠΎΠ±ΠΈΡΠΎΠ²ΡΠΉ ΡΠ΄Π²ΠΈΠ³ Π²Π»Π΅Π²ΠΎ
ΠΠΎΠ±ΠΈΡΠΎΠ²ΡΠ΅ ΡΠ΄Π²ΠΈΠ³ΠΈ Π½Π΅ΠΌΠ½ΠΎΠ³ΠΎ ΠΎΡΠ»ΠΈΡΠ°ΡΡΡΡ ΠΎΡ ΡΠ°ΡΡΠΌΠΎΡΡΠ΅Π½Π½ΡΡ ΡΠ°Π½Π΅Π΅ Π±ΠΈΡΠΎΠ²ΡΡ ΠΎΠΏΠ΅ΡΠ°ΡΠΈΠΉ. ΠΠΎΠ±ΠΈΡΠΎΠ²ΡΠΉ ΡΠ΄Π²ΠΈΠ³ Π²Π»Π΅Π²ΠΎ ΡΠ΄Π²ΠΈΠ³Π°Π΅Ρ Π±ΠΈΡΡ ΡΠ²ΠΎΠ΅Π³ΠΎ ΠΎΠΏΠ΅ΡΠ°Π½Π΄Π° Π½Π° N ΠΊΠΎΠ»ΠΈΡΠ΅ΡΡΠ²ΠΎ Π±ΠΈΡΠΎΠ² Π²Π»Π΅Π²ΠΎ, Π½Π°ΡΠΈΠ½Π°Ρ Ρ ΠΌΠ»Π°Π΄ΡΠ΅Π³ΠΎ Π±ΠΈΡΠ°. ΠΡΡΡΡΠ΅ ΠΌΠ΅ΡΡΠ° ΠΏΠΎΡΠ»Π΅ ΡΠ΄Π²ΠΈΠ³Π° Π·Π°ΠΏΠΎΠ»Π½ΡΡΡΡΡ Π½ΡΠ»ΡΠΌΠΈ. ΠΡΠΎΠΈΡΡ ΠΎΠ΄ΠΈΡ ΡΡΠΎ ΡΠ°ΠΊ:
ΠΠΎΠ±ΠΈΡΠΎΠ²ΡΠΉ ΡΠ΄Π²ΠΈΠ³ Π²ΠΏΡΠ°Π²ΠΎ
ΠΠ°ΠΊ Π²Ρ ΠΌΠΎΠ³Π»ΠΈ Π΄ΠΎΠ³Π°Π΄Π°ΡΡΡΡ, >> ΡΠ΄Π²ΠΈΠ³Π°Π΅Ρ Π±ΠΈΡΡ ΠΎΠΏΠ΅ΡΠ°Π½Π΄Π° Π½Π° ΠΎΠ±ΠΎΠ·Π½Π°ΡΠ΅Π½Π½ΠΎΠ΅ ΠΊΠΎΠ»ΠΈΡΠ΅ΡΡΠ²ΠΎ Π±ΠΈΡΠΎΠ² Π²ΠΏΡΠ°Π²ΠΎ.
ΠΡΠ»ΠΈ ΠΎΠΏΠ΅ΡΠ°Π½Π΄ ΠΏΠΎΠ»ΠΎΠΆΠΈΡΠ΅Π»ΡΠ½ΡΠΉ, ΡΠΎ ΠΏΡΡΡΡΠ΅ ΠΌΠ΅ΡΡΠ° Π·Π°ΠΏΠΎΠ»Π½ΡΡΡΡΡ Π½ΡΠ»ΡΠΌΠΈ. ΠΡΠ»ΠΈ ΠΆΠ΅ ΠΈΠ·Π½Π°ΡΠ°Π»ΡΠ½ΠΎ ΠΌΡ ΡΠ°Π±ΠΎΡΠ°Π΅ΠΌ Ρ ΠΎΡΡΠΈΡΠ°ΡΠ΅Π»ΡΠ½ΡΠΌ ΡΠΈΡΠ»ΠΎΠΌ, ΡΠΎ Π²ΡΠ΅ ΠΏΡΡΡΡΠ΅ ΠΌΠ΅ΡΡΠ° ΡΠ»Π΅Π²Π° Π·Π°ΠΏΠΎΠ»Π½ΡΡΡΡΡ Π΅Π΄ΠΈΠ½ΠΈΡΠ°ΠΌΠΈ. ΠΡΠΎ Π΄Π΅Π»Π°Π΅ΡΡΡ Π΄Π»Ρ ΡΠΎΡ ΡΠ°Π½Π΅Π½ΠΈΡ Π·Π½Π°ΠΊΠ° Π² ΡΠΎΠΎΡΠ²Π΅ΡΡΡΠ²ΠΈΠΈ Ρ Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡΠ΅Π»ΡΠ½ΡΠΌ ΠΊΠΎΠ΄ΠΎΠΌ, ΠΎΠ±ΡΡΡΠ½Π΅Π½Π½ΡΠΌ ΡΠ°Π½Π΅Π΅.
ΠΡΠ²ΠΎΠ΄
ΠΡΠ°ΠΊ, ΡΠ΅ΠΏΠ΅ΡΡ Π²Ρ Π·Π½Π°Π΅ΡΠ΅ Π±ΠΎΠ»ΡΡΠ΅ ΠΎ Π±ΠΈΡΠΎΠ²ΡΡ ΠΎΠΏΠ΅ΡΠ°ΡΠΈΡΡ ΠΈ Π½Π΅ Π±ΠΎΠΈΡΠ΅ΡΡ ΠΈΡ . ΠΠΎΠ³Ρ ΠΏΡΠ΅Π΄ΠΏΠΎΠ»ΠΎΠΆΠΈΡΡ, ΡΡΠΎ Π²Ρ Π½Π΅ Π±ΡΠ΄Π΅ΡΠ΅ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ >>1 ΠΏΡΠΈ ΠΊΠ°ΠΆΠ΄ΠΎΠΌ Π΄Π΅Π»Π΅Π½ΠΈΠΈ Π½Π° 2. Π’Π΅ΠΌ Π½Π΅ ΠΌΠ΅Π½Π΅Π΅, Π±ΠΈΡΠΎΠ²ΡΠ΅ ΠΎΠΏΠ΅ΡΠ°ΡΠΈΠΈ Π½Π΅ΠΏΠ»ΠΎΡ ΠΎ ΠΈΠΌΠ΅ΡΡ Π² ΡΠ²ΠΎΠ΅ΠΌ Π°ΡΡΠ΅Π½Π°Π»Π΅, ΠΈ ΡΠ΅ΠΏΠ΅ΡΡ Π²Ρ ΡΠΌΠΎΠΆΠ΅ΡΠ΅ Π²ΠΎΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡΡΡ ΠΈΠΌΠΈ Π² ΡΠ»ΡΡΠ°Π΅ Π½Π°Π΄ΠΎΠ±Π½ΠΎΡΡΠΈ ΠΈΠ»ΠΈ ΠΆΠ΅ ΠΎΡΠ²Π΅ΡΠΈΡΡ Π½Π° ΠΊΠ°Π²Π΅ΡΠ·Π½ΡΠΉ Π²ΠΎΠΏΡΠΎΡ Π½Π° ΡΠΎΠ±Π΅ΡΠ΅Π΄ΠΎΠ²Π°Π½ΠΈΠΈ.