Π§ΡΠΎ ΡΠ°ΠΊΠΎΠ΅ ΠΏΠΎΠ±ΠΈΡΠΎΠ²ΡΠΉ ΡΠ΄Π²ΠΈΠ³
ΠΠΈΡΠΎΠ²ΡΠ΅ ΠΎΠΏΠ΅ΡΠ°ΡΠΈΠΈ
ΠΠ²Π΅Π΄Π΅Π½ΠΈΠ΅
Π― Π·ΡΠΊ Π‘ΠΈ ΠΈΠ½ΠΎΠ³Π΄Π° Π½Π°Π·ΡΠ²Π°ΡΡ ΠΌΠ°ΠΊΡΠΎΠ°ΡΡΠ΅ΠΌΠ±Π»Π΅ΡΠΎΠΌ Π·Π° Π΅Π³ΠΎ ΡΡΠ³Ρ ΠΊ ΠΆΠ΅Π»Π΅Π·Ρ. ΠΡΠ»ΠΈ Π½Π΅ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ ΠΎΠΏΡΠΈΠΌΠΈΠ·Π°ΡΠΈΡ, ΠΌΠΎΠΆΠ½ΠΎ Π΄Π°ΠΆΠ΅ ΠΏΡΠΈΠΌΠ΅ΡΠ½ΠΎ ΠΎΡΠ΅Π½ΠΈΡΡ, Π² ΠΊΠ°ΠΊΠΈΠ΅ ΠΊΠΎΠ½ΡΡΡΡΠΊΡΠΈΠΈ Π½Π° Π°ΡΡΠ΅ΠΌΠ±Π»Π΅ΡΠ΅ ΠΏΡΠ΅ΠΎΠ±ΡΠ°Π·ΡΠ΅ΡΡΡ ΠΊΠΎΠ΄ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΡ. ΠΡΠΎΡΡΠΎΡΠ° ΠΈ ΠΌΠΈΠ½ΠΈΠΌΠ°Π»ΠΈΠ·ΠΌ ΡΠ·ΡΠΊΠ° (ΠΏΡΠΎΡΡΠΎΡΡ ΡΠ·ΡΠΊΠ° Π½Π΅ ΠΏΡΡΠ°ΡΡ Ρ ΠΏΡΠΎΡΡΠΎΡΠΎΠΉ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠΈΡΠΎΠ²Π°Π½ΠΈΡ Π½Π° ΡΠ·ΡΠΊΠ΅) ΠΏΡΠΈΠ²Π΅Π»ΠΈ ΠΊ ΡΠΎΠΌΡ, ΡΡΠΎ Π½Π° ΠΌΠ½ΠΎΠ³ΠΈΡ ΠΏΠ»Π°ΡΡΠΎΡΠΌΠ°Ρ ΡΠΈ ΠΎΡΡΠ°ΡΡΡΡ Π΅Π΄ΠΈΠ½ΡΡΠ²Π΅Π½Π½ΡΠΌ Π²ΡΡΠΎΠΊΠΎΡΡΠΎΠ²Π½Π΅Π²ΡΠΌ ΡΠ·ΡΠΊΠΎΠΌ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠΈΡΠΎΠ²Π°Π½ΠΈΡ. ΠΠ΅Π· ΠΎΠ±Π·ΠΎΡΠ° ΠΏΠΎΠ±ΠΈΡΠΎΠ²ΡΡ ΠΎΠΏΠ΅ΡΠ°ΡΠΈΠΉ, ΠΊΠΎΠ½Π΅ΡΠ½ΠΎ, ΠΈΠ·ΡΡΠ΅Π½ΠΈΡ ΡΠ·ΡΠΊΠ° Π±ΡΠ»ΠΎ Π±Ρ Π½Π΅ΠΏΠΎΠ»Π½ΡΠΌ.
ΠΠΎΠ±ΠΈΡΠΎΠ²ΡΠ΅ ΠΎΠΏΠ΅ΡΠ°ΡΠΈΠΈ, ΠΊΠ°ΠΊ ΠΏΠΎΠ½ΡΡΠ½ΠΎ ΠΈΠ· Π½Π°Π·Π²Π°Π½ΠΈΡ, ΠΏΠΎΠ·Π²ΠΎΠ»ΡΡΡ ΠΎΠΏΠ΅ΡΠΈΡΠΎΠ²Π°ΡΡ Π½Π΅ΠΏΠΎΡΡΠ΅Π΄ΡΡΠ²Π΅Π½Π½ΠΎ Ρ Π±ΠΈΡΠ°ΠΌΠΈ. ΠΠΎΠ»ΡΡΠΎΠ΅ ΠΊΠΎΠ»ΠΈΡΠ΅ΡΡΠ²ΠΎ ΠΏΡΠΈΠΌΠ΅ΡΠΎΠ² ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΡ ΠΏΠΎΠ±ΠΈΡΠΎΠ²ΡΡ ΠΎΠΏΠ΅ΡΠ°ΡΠΈΠΉ ΠΌΠΎΠΆΠ½ΠΎ Π½Π°ΠΉΡΠΈ, Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ, Π² ΠΊΠ½ΠΈΠ³Π΅ ΠΠ΅Π½ΡΠΈ Π£ΠΎΡΡΠ΅Π½Π° Β«ΠΠ»Π³ΠΎΡΠΈΡΠΌΠΈΡΠ΅ΡΠΊΠΈΠ΅ ΡΡΡΠΊΠΈ Π΄Π»Ρ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠΈΡΡΠΎΠ²Β». ΠΠ΄Π΅ΡΡ ΠΌΡ ΡΠ°ΡΡΠΌΠΎΡΡΠΈΠΌ ΡΠΎΠ»ΡΠΊΠΎ ΡΠ°ΠΌΠΈ ΠΎΠΏΠ΅ΡΠ°ΡΠΈΠΈ ΠΈ ΠΏΡΠΈΠΌΠΈΡΠΈΠ²Π½ΡΠ΅ Π°Π»Π³ΠΎΡΠΈΡΠΌΡ.
ΠΠΎΠ±ΠΈΡΠΎΠ²ΡΠ΅ Π, ΠΠΠ, ΠΠ, ΠΈΡΠΊΠ»ΡΡΠ°ΡΡΠ΅Π΅ ΠΠΠ
ΠΠΠΠΠ§ΠΠΠΠ: Π·Π΄Π΅ΡΡ ΠΈ Π΄Π°Π»Π΅Π΅ Π² ΠΏΡΠΈΠΌΠ΅ΡΠ°Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΡΡΡΡ 8-Π±ΠΈΡΠ½ΡΠ΅ ΡΠΈΡΠ»Π° Π΄Π»Ρ ΡΠΏΡΠΎΡΠ΅Π½ΠΈΡ Π·Π°ΠΏΠΈΡΠΈ. ΠΡΡ ΡΡΠΎ Π²Π΅ΡΠ½ΠΎ ΠΈ Π΄Π»Ρ Π»ΡΠ±ΡΡ Π΄ΡΡΠ³ΠΈΡ ΡΠΈΡΠ΅Π».
Π Π°ΠΏΠΎΠΌΠ½Ρ Π΄Π»Ρ Π½Π°ΡΠ°Π»Π°, ΡΡΠΎ Π»ΠΎΠ³ΠΈΡΠ΅ΡΠΊΠΈΠ΅ ΠΎΠΏΠ΅ΡΠ°ΡΠΈΠΈ Π, ΠΠΠ, ΠΈΡΠΊΠ»ΡΡΠ°ΡΡΠ΅Π΅ ΠΠΠ ΠΈ ΠΠ ΠΌΠΎΠ³ΡΡ Π±ΡΡΡ ΠΎΠΏΠΈΡΠ°Π½Ρ Ρ ΠΏΠΎΠΌΠΎΡΡΡ ΡΠ°Π±Π»ΠΈΡ ΠΈΡΡΠΈΠ½Π½ΠΎΡΡΠΈ
X | Y | X OR Y |
---|---|---|
0 | 0 | 0 |
0 | 1 | 1 |
1 | 0 | 1 |
1 | 1 | 1 |
X | Y | X XOR Y |
---|---|---|
0 | 0 | 0 |
0 | 1 | 1 |
1 | 0 | 1 |
1 | 1 | 0 |
Π ΠΏΠΎΠ±ΠΈΡΠΎΠ²ΡΡ (bit-wise) ΠΎΠΏΠ΅ΡΠ°ΡΠΈΡΡ Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅ Π±ΠΈΡΠ°, ΡΠ°Π²Π½ΠΎΠ΅ 1, ΡΠ°ΡΡΠΌΠ°ΡΡΠΈΠ²Π°Π΅ΡΡΡ ΠΊΠ°ΠΊ Π»ΠΎΠ³ΠΈΡΠ΅ΡΠΊΠ°Ρ ΠΈΡΡΠΈΠ½Π°, Π° 0 ΠΊΠ°ΠΊ Π»ΠΎΠΆΡ. ΠΠΎΠ±ΠΈΡΠΎΠ²ΠΎΠ΅ Π (ΠΎΠΏΠ΅ΡΠ°ΡΠΎΡ &) Π±Π΅ΡΡΡ Π΄Π²Π° ΡΠΈΡΠ»Π° ΠΈ Π»ΠΎΠ³ΠΈΡΠ΅ΡΠΊΠΈ ΡΠΌΠ½ΠΎΠΆΠ°Π΅Ρ ΡΠΎΠΎΡΠ²Π΅ΡΡΡΠ²ΡΡΡΠΈΠ΅ Π±ΠΈΡΡ. ΠΠ°ΠΏΡΠΈΠΌΠ΅Ρ, Π΅ΡΠ»ΠΈ Π»ΠΎΠ³ΠΈΡΠ΅ΡΠΊΠΈ ΡΠΌΠ½ΠΎΠΆΠΈΡΡ 3 Π½Π° 8, ΡΠΎ ΠΏΠΎΠ»ΡΡΠΈΠΌ 0
Π’Π°ΠΊ ΠΊΠ°ΠΊ Π² Π΄Π²ΠΎΠΈΡΠ½ΠΎΠΌ Π²ΠΈΠ΄Π΅ 3 Π² Π²ΠΈΠ΄Π΅ ΠΎΠ΄Π½ΠΎΠ±Π°ΠΉΡΠ½ΠΎΠ³ΠΎ ΡΠ΅Π»ΠΎΠ³ΠΎ ΠΏΡΠ΅Π΄ΡΡΠ°Π²Π»ΡΠ΅Ρ ΡΠΎΠ±ΠΎΠΉ
ΠΠ΅ΡΠ²ΡΠΉ Π±ΠΈΡ ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΠΎΠΉ c ΡΠ°Π²Π΅Π½ Π»ΠΎΠ³ΠΈΡΠ΅ΡΠΊΠΎΠΌΡ ΠΏΡΠΎΠΈΠ·Π²Π΅Π΄Π΅Π½ΠΈΡ ΠΏΠ΅ΡΠ²ΠΎΠ³ΠΎ Π±ΠΈΡΠ° ΡΠΈΡΠ»Π° a ΠΈ ΠΏΠ΅ΡΠ²ΠΎΠ³ΠΎ Π±ΠΈΡΠ° ΡΠΈΡΠ»Π° b. Π ΡΠ°ΠΊ Π΄Π»Ρ ΠΊΠ°ΠΆΠ΄ΠΎΠ³ΠΎ Π±ΠΈΡΠ°.
00000011
00001000 ββββββββ
00000000
00011111
00010001 ββββββββ
00010001
ΠΠΎΠ±ΠΈΡΠΎΠ²ΠΎΠ΅ ΠΏΡΠΎΠΈΠ·Π²Π΅Π΄Π΅Π½ΠΈΠ΅ ΡΠΈΡΠ΅Π» 35 ΠΈ 15 ΡΠ°Π²Π½ΠΎ 3.
00100011
00001111 ββββββββ
00000011
ΠΠ½Π°Π»ΠΎΠ³ΠΈΡΠ½ΠΎ ΡΠ°Π±ΠΎΡΠ°Π΅Ρ ΠΎΠΏΠ΅ΡΠ°ΡΠΈΡ ΠΏΠΎΠ±ΠΈΡΠΎΠ²ΠΎΠ³ΠΎ ΠΠΠ (ΠΎΠΏΠ΅ΡΠ°ΡΠΎΡ |), Π·Π° ΠΈΡΠΊΠ»ΡΡΠ΅Π½ΠΈΠ΅ΠΌ ΡΠΎΠ³ΠΎ, ΡΡΠΎ ΠΎΠ½Π° Π»ΠΎΠ³ΠΈΡΠ΅ΡΠΊΠΈ ΡΡΠΌΠΌΠΈΡΡΠ΅Ρ ΡΠΎΠΎΡΠ²Π΅ΡΡΡΠ²ΡΡΡΠΈΠ΅ Π±ΠΈΡΡ ΡΠΈΡΠ΅Π» Π±Π΅Π· ΠΏΠ΅ΡΠ΅Π½ΠΎΡΠ°.
00001111
00001011 ββββββββ
00001111
00100001
00001011 ββββββββ
00101011
ΠΠΎΠ±ΠΈΡΠΎΠ²ΠΎΠ΅ ΠΎΡΡΠΈΡΠ°Π½ΠΈΠ΅ (ΠΎΠΏΠ΅ΡΠ°ΡΠΎΡ
) ΡΠ°Π±ΠΎΡΠ°Π΅Ρ Π½Π΅ Π΄Π»Ρ ΠΎΡΠ΄Π΅Π»ΡΠ½ΠΎΠ³ΠΎ Π±ΠΈΡΠ°, Π° Π΄Π»Ρ Π²ΡΠ΅Π³ΠΎ ΡΠΈΡΠ»Π° ΡΠ΅Π»ΠΈΠΊΠΎΠΌ. ΠΠΏΠ΅ΡΠ°ΡΠΎΡ ΠΈΠ½Π²Π΅ΡΡΠΈΠΈ ΠΌΠ΅Π½ΡΠ΅Ρ Π»ΠΎΠΆΡ Π½Π° ΠΈΡΡΠΈΠ½Ρ, Π° ΠΈΡΡΠΈΠ½Ρ Π½Π° Π»ΠΎΠΆΡ, Π΄Π»Ρ ΠΊΠ°ΠΆΠ΄ΠΎΠ³ΠΎ Π±ΠΈΡΠ°. ΠΠ°ΠΏΡΠΈΠΌΠ΅Ρ,
ΠΡΠΊΠ»ΡΡΠ°ΡΡΠ΅Π΅ ΠΠΠ (ΠΎΠΏΠ΅ΡΠ°ΡΠΎΡ ^) ΠΏΡΠΈΠΌΠ΅Π½ΡΠ΅Ρ ΠΏΠΎΠ±ΠΈΡΠΎΠ²ΠΎ ΠΎΠΏΠ΅ΡΠ°ΡΠΈΡ XOR. ΠΠ°ΠΏΡΠΈΠΌΠ΅Ρ, Π΄Π»Ρ ΡΠΈΡΠ΅Π»
ΠΠ½ΠΎΠ³Π΄Π° Π»ΠΎΠ³ΠΈΡΠ΅ΡΠΊΠΈΠ΅ ΠΎΠΏΠ΅ΡΠ°ΡΠΎΡΡ && ΠΈ || ΠΏΡΡΠ°ΡΡ Ρ ΠΎΠΏΠ΅ΡΠ°ΡΠΎΡΠ°ΠΌΠΈ & ΠΈ |. Π’Π°ΠΊΠΈΠ΅ ΠΎΡΠΈΠ±ΠΊΠΈ ΠΌΠΎΠ³ΡΡ ΡΡΡΠ΅ΡΡΠ²ΠΎΠ²Π°ΡΡ Π² ΠΊΠΎΠ΄Π΅ Π΄ΠΎΡΡΠ°ΡΠΎΡΠ½ΠΎ Π΄ΠΎΠ»Π³ΠΎ, ΠΏΠΎΡΠΎΠΌΡ ΡΡΠΎ ΡΠ°ΠΊΠΎΠΉ ΠΊΠΎΠ΄ Π² ΡΡΠ΄Π΅ ΡΠ»ΡΡΠ°Π΅Π² Π±ΡΠ΄Π΅Ρ ΡΠ°Π±ΠΎΡΠ°ΡΡ. ΠΠ°ΠΏΡΠΈΠΌΠ΅Ρ, Π΄Π»Ρ ΡΠΈΡΠ΅Π» 1 ΠΈ 0. ΠΠΎ ΡΠ°ΠΊ ΠΊΠ°ΠΊ Π² ΡΠΈ ΠΈΡΡΠΈΠ½ΠΎΠΉ ΡΠ²Π»ΡΠ΅ΡΡΡ Π»ΡΠ±ΠΎΠ΅ Π½Π΅Π½ΡΠ»Π΅Π²ΠΎΠ΅ Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅, ΡΠΎ ΠΏΠΎΠ±ΠΈΡΠΎΠ²ΠΎΠ΅ ΡΠΌΠ½ΠΎΠΆΠ΅Π½ΠΈΠ΅ ΡΠΈΡΠ΅Π» 3 ΠΈ 4 Π²Π΅ΡΠ½ΡΡ 0, Ρ ΠΎΡΡ Π»ΠΎΠ³ΠΈΡΠ΅ΡΠΊΠΎΠ΅ ΡΠΌΠ½ΠΎΠΆΠ΅Π½ΠΈΠ΅ Π΄ΠΎΠ»ΠΆΠ½ΠΎ Π²Π΅ΡΠ½ΡΡΡ ΠΈΡΡΠΈΠ½Ρ.
ΠΠΏΠ΅ΡΠ°ΡΠΈΠΈ ΠΏΠΎΠ±ΠΈΡΠΎΠ²ΠΎΠ³ΠΎ ΡΠ΄Π²ΠΈΠ³Π°
Π ΠΏΠ΅ΡΠ°ΡΠΈΠΉ ΡΠ΄Π²ΠΈΠ³Π° Π΄Π²Π΅ β Π±ΠΈΡΠΎΠ²ΡΠΉ ΡΠ΄Π²ΠΈΠ³ Π²Π»Π΅Π²ΠΎ (ΠΎΠΏΠ΅ΡΠ°ΡΠΎΡ >). ΠΠΈΡΠΎΠ²ΡΠΉ ΡΠ΄Π²ΠΈΠ³ Π²ΠΏΡΠ°Π²ΠΎ ΡΠ΄Π²ΠΈΠ³Π°Π΅Ρ Π±ΠΈΡΡ ΡΠΈΡΠ»Π° Π²ΠΏΡΠ°Π²ΠΎ, Π΄ΠΎΠΏΠΈΡΡΠ²Π°Ρ ΡΠ»Π΅Π²Π° Π½ΡΠ»ΠΈ. ΠΠΈΡΠΎΠ²ΡΠΉ ΡΠ΄Π²ΠΈΠ³ Π²Π»Π΅Π²ΠΎ Π΄Π΅Π»Π°Π΅Ρ ΠΏΡΠΎΡΠΈΠ²ΠΎΠΏΠΎΠ»ΠΎΠΆΠ½ΠΎΠ΅: ΡΠ΄Π²ΠΈΠ³Π°Π΅Ρ Π±ΠΈΡΡ Π²Π»Π΅Π²ΠΎ, Π΄ΠΎΠΏΠΈΡΡΠ²Π°Ρ ΡΠΏΡΠ°Π²Π° Π½ΡΠ»ΠΈ. ΠΡΡΠ΅Π΄ΡΠΈΠ΅ Π·Π° ΠΏΡΠ΅Π΄Π΅Π»Ρ ΡΠΈΡΠ»Π° Π±ΠΈΡΡ ΠΎΡΠ±ΡΠ°ΡΡΠ²Π°ΡΡΡΡ.
ΠΠ°ΠΏΡΠΈΠΌΠ΅Ρ, ΡΠ΄Π²ΠΈΠ³ ΡΠΈΡΠ»Π° 5 Π²Π»Π΅Π²ΠΎ Π½Π° 2 ΠΏΠΎΠ·ΠΈΡΠΈΠΈ
Π‘Π΄Π²ΠΈΠ³ ΡΠΈΡΠ»Π° 19 Π²ΠΏΡΠ°Π²ΠΎ Π½Π° 3 ΠΏΠΎΠ·ΠΈΡΠΈΠΈ
00010011 >> 3 == 00000010
ΠΠ΅Π·Π°Π²ΠΈΡΠΈΠΌΠΎ ΠΎΡ Π°ΡΡ ΠΈΡΠ΅ΠΊΡΡΡΡ (big-endian, ΠΈΠ»ΠΈ little-endian, ΠΈΠ»ΠΈ middle-endian) ΡΠΈΡΠ»Π° Π² Π΄Π²ΠΎΠΈΡΠ½ΠΎΠΌ Π²ΠΈΠ΄Π΅ ΠΏΡΠ΅Π΄ΡΡΠ°Π²Π»ΡΡΡΡΡ ΡΠ»Π΅Π²Π° Π½Π°ΠΏΡΠ°Π²ΠΎ, ΠΎΡ Π±ΠΎΠ»Π΅Π΅ Π·Π½Π°ΡΠ°ΡΠ΅Π³ΠΎ Π±ΠΈΡΠ° ΠΊ ΠΌΠ΅Π½Π΅Π΅ Π·Π½Π°ΡΠ°ΡΠ΅ΠΌΡ. ΠΠΎΠ±ΠΈΡΠΎΠ²ΡΠΉ ΡΠ΄Π²ΠΈΠ³ ΠΏΡΠΈΠ½ΠΈΠΌΠ°Π΅Ρ Π΄Π²Π° ΠΎΠΏΠ΅ΡΠ°Π½Π΄Π° β ΡΠΈΡΠ»ΠΎ, Π½Π°Π΄ ΠΊΠΎΡΠΎΡΡΠΌ Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΠΎ ΠΏΡΠΎΠΈΠ·Π²Π΅ΡΡΠΈ ΡΠ΄Π²ΠΈΠ³, ΠΈ ΡΠΈΡΠ»ΠΎ Π±ΠΈΡ, Π½Π° ΠΊΠΎΡΠΎΡΠΎΠ΅ Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΠΎ ΠΏΡΠΎΠΈΠ·Π²Π΅ΡΡΠΈ ΡΠ΄Π²ΠΈΠ³.
Π’Π°ΠΊ ΠΊΠ°ΠΊ ΡΠ΄Π²ΠΈΠ³ Π²ΠΏΡΠ°Π²ΠΎ (>>) Π΄ΠΎΠΏΠΈΡΡΠ²Π°Π΅Ρ ΡΠ»Π΅Π²Π° Π½ΡΠ»ΠΈ, ΡΠΎ Π΄Π»Ρ ΡΠ΅Π»ΡΡ ΡΠΈΡΠ΅Π» ΠΎΠΏΠ΅ΡΠ°ΡΠΈΡ ΡΠ°Π²Π½ΠΎΡΠΈΠ»ΡΠ½Π° ΡΠ΅Π»ΠΎΡΠΈΡΠ»Π΅Π½Π½ΠΎΠΌΡ Π΄Π΅Π»Π΅Π½ΠΈΡ ΠΏΠΎΠΏΠΎΠ»Π°ΠΌ, Π° ΡΠ΄Π²ΠΈΠ³ Π²Π»Π΅Π²ΠΎ ΡΠΌΠ½ΠΎΠΆΠ΅Π½ΠΈΡ Π½Π° 2. ΠΡΠΎΠΈΠ·Π²Π΅ΡΡΠΈ Π±ΠΈΡΠΎΠ²ΡΠΉ ΡΠ΄Π²ΠΈΠ³ Π΄Π»Ρ ΡΠΈΡΠ»Π° Ρ ΠΏΠ»Π°Π²Π°ΡΡΠ΅ΠΉ ΡΠΎΡΠΊΠΎΠΉ Π±Π΅Π· ΡΠ²Π½ΠΎΠ³ΠΎ ΠΏΡΠΈΠ²Π΅Π΄Π΅Π½ΠΈΡ ΡΠΈΠΏΠ° Π½Π΅Π»ΡΠ·Ρ. ΠΡΠΎ Π²ΡΠ·Π²Π°Π½ΠΎ ΡΠ΅ΠΌ, ΡΡΠΎ Π΄Π»Ρ ΡΠΈ Π½Π΅ ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½ΠΎ ΠΏΡΠ΅Π΄ΡΡΠ°Π²Π»Π΅Π½ΠΈΠ΅ ΡΠΈΡΠ»Π° Ρ ΠΏΠ»Π°Π²Π°ΡΡΠ΅ΠΉ ΡΠΎΡΠΊΠΎΠΉ. ΠΠ΄Π½Π°ΠΊΠΎ ΠΌΠΎΠΆΠ½ΠΎ ΠΏΠ΅ΡΠ΅ΠΌΠ΅ΡΡΠΈΡΡ ΡΠΈΡΠ»ΠΎ ΡΠΈΠΏΠ° float Π² int, Π·Π°ΡΠ΅ΠΌ ΡΠ΄Π²ΠΈΠ½ΡΡΡ ΠΈ Π²Π΅ΡΠ½ΡΡΡ ΠΎΠ±ΡΠ°ΡΠ½ΠΎ
ΠΠΎ ΠΌΡ, ΠΊΠΎΠ½Π΅ΡΠ½ΠΎ ΠΆΠ΅, ΠΏΠΎΠ»ΡΡΠΈΠΌ Π½Π΅ 5.0f, Π° ΡΠΎΠ²Π΅ΡΡΠ΅Π½Π½ΠΎ Π΄ΡΡΠ³ΠΎΠ΅ ΡΠΈΡΠ»ΠΎ.
ΠΡΠΎΠ±Π΅Π½Π½ΠΎΡΡΡΡ ΠΎΠΏΠ΅ΡΠ°ΡΠΎΡΠΎΠ² ΡΠ΄Π²ΠΈΠ³Π° ΡΠ²Π»ΡΠ΅ΡΡΡ ΡΠΎ, ΡΡΠΎ ΠΎΠ½ΠΈ ΠΌΠΎΠ³ΡΡ ΠΏΠΎ-ΡΠ°Π·Π½ΠΎΠΌΡ Π²Π΅ΡΡΠΈ ΡΠ΅Π±Ρ Ρ ΡΠΈΡΠ»Π°ΠΌΠΈ ΡΠΎ Π·Π½Π°ΠΊΠΎΠΌ ΠΈ Π±Π΅Π· Π·Π½Π°ΠΊΠ°, Π² Π·Π°Π²ΠΈΡΠΈΠΌΠΎΡΡΠΈ ΠΎΡ ΠΊΠΎΠΌΠΏΠΈΠ»ΡΡΠΎΡΠ°. ΠΠ΅ΠΉΡΡΠ²ΠΈΡΠ΅Π»ΡΠ½ΠΎ, ΠΎΡΡΠΈΡΠ°ΡΠ΅Π»ΡΠ½ΠΎΠ΅ ΡΠΈΡΠ»ΠΎ ΠΎΠ±ΡΡΠ½ΠΎ ΡΠΎΠ΄Π΅ΡΠΆΠΈΡ ΠΎΠ΄ΠΈΠ½ Π±ΠΈΡ Π·Π½Π°ΠΊΠ°. ΠΠΎΠ³Π΄Π° ΠΌΡ Π±ΡΠ΄Π΅ΠΌ ΠΏΡΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡΡ ΡΠ΄Π²ΠΈΠ³ Π²Π»Π΅Π²ΠΎ, ΠΎΠ½ ΠΌΠΎΠΆΠ΅Ρ ΠΏΡΠΎΠΏΠ°ΡΡΡ, ΡΠΈΡΠ»ΠΎ ΡΡΠ°Π½Π΅Ρ ΠΏΠΎΠ»ΠΎΠΆΠΈΡΠ΅Π»ΡΠ½ΡΠΌ. ΠΠ΄Π½Π°ΠΊΠΎ, ΠΊΠΎΠΌΠΏΠΈΠ»ΡΡΠΎΡ ΠΌΠΎΠΆΠ΅Ρ ΡΠ΄Π΅Π»Π°ΡΡ ΡΠ°ΠΊ, ΡΡΠΎ ΡΠ΄Π²ΠΈΠ³ ΠΎΡΡΠ°Π½Π΅ΡΡΡ Π·Π½Π°ΠΊΠΎΠΏΠΎΡΡΠΎΡΠ½Π½ΡΠΌ ΠΈ Π±ΡΠ΄Π΅Ρ ΠΏΡΠΎΡ ΠΎΠ΄ΠΈΡΡ ΠΏΠΎ Π΄ΡΡΠ³ΠΈΠΌ ΠΏΡΠ°Π²ΠΈΠ»Π°ΠΌ. Π’ΠΎ ΠΆΠ΅ ΡΠ°ΠΌΠΎΠ΅ ΠΈ Π΄Π»Ρ ΡΠ΄Π²ΠΈΠ³Π° Π²ΠΏΡΠ°Π²ΠΎ.
Π Π΄Π°Π½Π½ΠΎΠΌ ΡΠ»ΡΡΠ°Π΅ ΠΏΡΠΈ ΠΏΠ΅ΡΠ²ΠΎΠΌ ΡΠ΄Π²ΠΈΠ³Π΅ Π²ΡΡ ΡΠ°Π±ΠΎΡΠ°Π΅Ρ, ΠΊΠ°ΠΊ ΠΈ Π·Π°Π΄ΡΠΌΠ°Π½ΠΎ, ΠΏΠΎΡΠΎΠΌΡ ΡΡΠΎ ΡΠΈΡΠ»ΠΎ Π±Π΅Π· Π·Π½Π°ΠΊΠ°. ΠΠΎ Π²ΡΠΎΡΠΎΠΌ ΡΠ»ΡΡΠ°Π΅ ΠΊΠΎΠΌΠΏΠΈΠ»ΡΡΠΎΡ VSE2013 ΠΎΡΡΠ°Π²Π»ΡΠ΅Ρ Π·Π½Π°ΠΊ. ΠΠ΄Π½Π°ΠΊΠΎ Π΅ΡΠ»ΠΈ ΠΏΠΎΡΠΌΠΎΡΡΠ΅ΡΡ Π½Π° ΠΏΡΠ΅Π΄ΡΡΠ°Π²Π»Π΅Π½ΠΈΠ΅ ΡΡΠΎΠ³ΠΎ ΡΠΈΡΠ»Π°, ΠΊΠ°ΠΊ Π±Π΅Π·Π·Π½Π°ΠΊΠΎΠ²ΠΎΠ³ΠΎ, ΡΠ΄Π²ΠΈΠ³ ΠΏΡΠΎΠΈΡΡ ΠΎΠ΄ΠΈΡ ΠΏΠΎ Π΄ΡΡΠ³ΠΈΠΌ ΠΏΡΠ°Π²ΠΈΠ»Π°ΠΌ, Ρ ΡΠΎΡ ΡΠ°Π½Π΅Π½ΠΈΠ΅ΠΌ ΡΠ°ΠΌΠΎΠ³ΠΎ Π»Π΅Π²ΠΎΠ³ΠΎ Π±ΠΈΡΠ°. Π ΠΏΠΎΡΠ»Π΅Π΄Π½Π΅ΠΉ ΡΡΡΠΎΡΠΊΠ΅, Π΅ΡΠ»ΠΈ ΠΏΡΠΈΠ²Π΅ΡΡΠΈ ΡΠΈΡΠ»ΠΎ ΡΠΎ Π·Π½Π°ΠΊΠΎΠΌ ΠΊ ΡΠΈΡΠ»Ρ Π±Π΅Π· Π·Π½Π°ΠΊΠ°, ΡΠΎ ΠΏΡΠΎΠΈΠ·ΠΎΠΉΠ΄ΡΡ ΠΎΠ±ΡΡΠ½ΡΠΉ ΡΠ΄Π²ΠΈΠ³, ΠΈ ΠΌΡ ΠΏΠΎΠ»ΡΡΠΈΠΌ Π² ΡΠ΅Π·ΡΠ»ΡΡΠ°ΡΠ΅ ΠΏΠΎΠ»ΠΎΠΆΠΈΡΠ΅Π»ΡΠ½ΠΎΠ΅ ΡΠΈΡΠ»ΠΎ.
ΠΠΎΠ±ΠΈΡΠΎΠ²ΡΠ΅ ΠΎΠΏΠ΅ΡΠ°ΡΠΎΡΡ ΠΈ ΠΎΠΏΠ΅ΡΠ°ΡΠΎΡΡ ΡΠ΄Π²ΠΈΠ³Π° Π½Π΅ ΠΈΠ·ΠΌΠ΅Π½ΡΡΡ Π·Π½Π°ΡΠ΅Π½ΠΈΡ ΡΠΈΡΠ»Π°, Π²ΠΎΠ·Π²ΡΠ°ΡΠ°Ρ Π½ΠΎΠ²ΠΎΠ΅. ΠΠ½ΠΈ ΡΠ°ΠΊΠΆΠ΅ ΠΊΠ°ΠΊ ΠΈ Π°ΡΠΈΡΠΌΠ΅ΡΠΈΡΠ΅ΡΠΊΠΈΠ΅ ΠΎΠΏΠ΅ΡΠ°ΡΠΎΡΡ, ΠΌΠΎΠ³ΡΡ Π²Ρ ΠΎΠ΄ΠΈΡΡ Π² ΡΠΎΡΡΠ°Π² ΡΠ»ΠΎΠΆΠ½ΠΎΠ³ΠΎ ΠΏΡΠΈΡΠ²Π°ΠΈΠ²Π°Π½ΠΈΡ
ΠΡΠΈΠΌΠ΅ΡΡ
1. ΠΠ°ΠΏΠΈΡΠ΅ΠΌ ΡΡΠ½ΠΊΡΠΈΠΈ, ΠΊΠΎΡΠΎΡΡΠ΅ ΠΏΠΎΠ·Π²ΠΎΠ»ΡΡΡ ΠΎΠΏΡΠ΅Π΄Π΅Π»ΡΡΡ ΠΈ ΠΈΠ·ΠΌΠ΅Π½ΡΡΡ ΠΎΠΏΡΠ΅Π΄Π΅Π»ΡΠ½Π½ΡΠΉ Π±ΠΈΡ ΡΠΈΡΠ»Π°
ΠΠ»Ρ ΡΠΎΠ³ΠΎ, ΡΡΠΎΠ±Ρ ΡΠ·Π½Π°ΡΡ, ΠΊΠ°ΠΊΠΎΠΉ Π±ΠΈΡ (1 ΠΈΠ»ΠΈ 0) ΡΡΠΎΠΈΡ Π½Π° ΠΏΠΎΠ·ΠΈΡΠΈΠΈ n, Π²ΠΎΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΠΌΡΡ Π»ΠΎΠ³ΠΈΡΠ΅ΡΠΊΠΈΠΌ ΡΠΌΠ½ΠΎΠΆΠ΅Π½ΠΈΠ΅ΠΌ.
ΠΡΡΡΡ ΠΈΠΌΠ΅Π΅ΡΡΡ ΡΠΈΡΠ»ΠΎ 9
ΠΡΠΆΠ½ΠΎ ΡΠ·Π½Π°ΡΡ, Π²ΡΡΡΠ°Π²Π»Π΅Π½ Π»ΠΈ Π±ΠΈΡ Π½Π° ΠΏΠΎΠ·ΠΈΡΠΈΠΈ 3 (Π½Π°ΡΠΈΠ½Π°Ρ Ρ Π½ΡΠ»Ρ). ΠΠ»Ρ ΡΡΠΎΠ³ΠΎ ΡΠΌΠ½ΠΎΠΆΠΈΠΌ Π΅Π³ΠΎ Π½Π° ΡΠΈΡΠ»ΠΎ, Ρ ΠΊΠΎΡΠΎΡΠΎΠ³ΠΎ Π²ΡΠ΅ Π±ΠΈΡΡ ΡΠ°Π²Π½Ρ Π½ΡΠ»Ρ, ΠΊΡΠΎΠΌΠ΅ ΡΡΠ΅ΡΡΠ΅Π³ΠΎ:
00001001 & 00001000 = 00001000
Π’Π΅ΠΏΠ΅ΡΡ ΡΠ·Π½Π°Π΅ΠΌ Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅ Π±ΠΈΡΠ° Π² ΠΏΠΎΠ·ΠΈΡΠΈΠΈ 6
00001001 & 01000000 = 00000000
Π’Π°ΠΊΠΈΠΌ ΠΎΠ±ΡΠ°Π·ΠΎΠΌ, Π΅ΡΠ»ΠΈ ΠΌΡ ΠΏΠΎΠ»ΡΡΠ°Π΅ΠΌ ΠΎΡΠ²Π΅Ρ, ΡΠ°Π²Π½ΡΠΉ Π½ΡΠ»Ρ, ΡΠΎ Π½Π° ΠΈΡΠΊΠΎΠΌΠΎΠΉ ΠΏΠΎΠ·ΠΈΡΠΈΠΈ Π½Π°Ρ ΠΎΠ΄ΠΈΡΡΡ Π½ΠΎΠ»Ρ, ΠΈΠ½Π°ΡΠ΅ Π΅Π΄ΠΈΠ½ΠΈΡΠ°. Π§ΡΠΎΠ±Ρ ΠΏΠΎΠ»ΡΡΠΈΡΡ ΡΠΈΡΠ»ΠΎ, ΡΠΎΡΡΠΎΡΡΠ΅Π΅ ΠΈΠ· Π½ΡΠ»Π΅ΠΉ Ρ ΠΎΠ΄Π½ΠΈΠΌ Π±ΠΈΡΠΎΠΌ Π½Π° Π½ΡΠΆΠ½ΠΎΠΉ ΠΏΠΎΠ·ΠΈΡΠΈΠΈ, ΡΠ΄Π²ΠΈΠ½Π΅ΠΌ 1 Π½Π° Π½ΡΠΆΠ½ΠΎΠ΅ ΡΠΈΡΠ»ΠΎ Π±ΠΈΡ Π²Π»Π΅Π²ΠΎ.
ΠΠ°ΠΌΠ΅ΡΡΡΠ΅, ΡΡΠΎ Π² ΡΡΠ½ΠΊΡΠΈΠΈ ΡΡΠ»ΠΎΠ²ΠΈΠ΅ Π·Π°ΠΏΠΈΡΠ°Π½ΠΎ ΡΠ°ΠΊ
ΠΠΎΡΠΎΠΌΡ ΡΡΠΎ Π±Π΅Π· ΡΠΊΠΎΠ±ΠΎΠΊ ΡΠ½Π°ΡΠ°Π»Π° Π±ΡΠ΄Π΅Ρ Π²ΡΡΠΈΡΠ»Π΅Π½ΠΎ ΡΠ°Π²Π΅Π½ΡΡΠ²ΠΎ Π½ΡΠ»Ρ ΠΈ ΡΠΎΠ»ΡΠΊΠΎ ΠΏΠΎΡΠΎΠΌ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΎ ΡΠΌΠ½ΠΎΠΆΠ΅Π½ΠΈΠ΅.
Π€ΡΠ½ΠΊΡΠΈΡ ΠΌΠΎΠΆΠ½ΠΎ ΡΠΏΡΠΎΡΡΠΈΡΡ
Π€ΡΠ½ΠΊΡΠΈΡ, ΠΊΠΎΡΠΎΡΠ°Ρ Π²ΡΡΡΠ°Π²Π»ΡΠ΅Ρ Π±ΠΈΡ Π½Π° n-ΠΉ ΠΏΠΎΠ·ΠΈΡΠΈΠΈ Π² Π΅Π΄ΠΈΠ½ΠΈΡΡ.
ΠΠ·Π²Π΅ΡΡΠ½ΠΎ, ΡΡΠΎ Π»ΠΎΠ³ΠΈΡΠ΅ΡΠΊΠΎΠ΅ ΡΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ Π»ΡΠ±ΠΎΠ³ΠΎ Π±ΠΈΡΠ° Ρ 1 Π±ΡΠ΄Π΅Ρ ΡΠ°Π²Π½ΠΎ 1. Π’Π°ΠΊ ΡΡΠΎ Π΄Π»Ρ ΡΡΡΠ°Π½ΠΎΠ²ΠΊΠΈ n-Π³ΠΎ Π±ΠΈΡΠ° Π½ΡΠΆΠ½ΠΎ Π»ΠΎΠ³ΠΈΡΠ΅ΡΠΊΠΈ ΡΠ»ΠΎΠΆΠΈΡΡ ΡΠΈΡΠ»ΠΎ Ρ ΡΠ°ΠΊΠΈΠΌ, Ρ ΠΊΠΎΡΠΎΡΠΎΠ³ΠΎ Π²ΡΠ΅ Π±ΠΈΡΡ, ΠΊΡΠΎΠΌΠ΅ Π½ΡΠΆΠ½ΠΎΠ³ΠΎ, ΡΠ°Π²Π½Ρ Π½ΡΠ»Ρ. ΠΠ°ΠΊ ΠΏΠΎΠ»ΡΡΠΈΡΡ ΡΠ°ΠΊΠΎΠ΅ ΡΠΈΡΠ»ΠΎ, ΡΠΆΠ΅ ΡΠ°ΡΡΠΌΠΎΡΡΠ΅Π½ΠΎ.
Π€ΡΠ½ΠΊΡΠΈΡ, ΠΊΠΎΡΠΎΡΠ°Ρ ΡΡΡΠ°Π½Π°Π²Π»ΠΈΠ²Π°Π΅Ρ Π±ΠΈΡ Π½Π° n-ΠΉ ΠΏΠΎΠ·ΠΈΡΠΈΠΈ Π² Π½ΠΎΠ»Ρ.
ΠΠ»Ρ ΡΡΠΎΠ³ΠΎ Π½ΡΠΆΠ½ΠΎ, ΡΡΠΎΠ±Ρ Π²ΡΠ΅ Π±ΠΈΡΡ ΡΠΈΡΠ»Π°, ΠΊΡΠΎΠΌΠ΅ n-Π³ΠΎ, Π½Π΅ ΠΈΠ·ΠΌΠ΅Π½ΠΈΠ»ΠΈΡΡ. Π£ΠΌΠ½ΠΎΠΆΠΈΠΌ ΡΠΈΡΠ»ΠΎ Π½Π° ΡΠ°ΠΊΠΎΠ΅, Ρ ΠΊΠΎΡΠΎΡΠΎΠ³ΠΎ Π²ΡΠ΅ Π±ΠΈΡΡ ΡΠ°Π²Π½Ρ Π΅Π΄ΠΈΠ½ΠΈΡΠ΅, ΠΊΡΠΎΠΌΠ΅ Π±ΠΈΡΠ° ΠΏΠΎΠ΄ Π½ΠΎΠΌΠ΅ΡΠΎΠΌ n. ΠΠ°ΠΏΡΠΈΠΌΠ΅Ρ
0001011 & 1110111 = 0000011
Π§ΡΠΎΠ±Ρ ΠΏΠΎΠ»ΡΡΠΈΡΡ ΡΠ°ΠΊΡΡ ΠΌΠ°ΡΠΊΡ, ΡΠ½Π°ΡΠ°Π»Π° ΡΠΎΠ·Π΄Π°Π΄ΠΈΠΌ ΡΠΈΡΠ»ΠΎ Ρ Π½ΡΠ»ΡΠΌΠΈ ΠΈ ΠΎΠ΄Π½ΠΎΠΉ Π΅Π΄ΠΈΠ½ΠΈΡΠ΅ΠΉ, Π° ΠΏΠΎΡΠΎΠΌ ΠΈΠ½Π²Π΅ΡΡΠΈΡΡΠ΅ΠΌ Π΅Π³ΠΎ.
Π€ΡΠ½ΠΊΡΠΈΡ, ΠΈΠ·ΠΌΠ΅Π½ΡΡΠ°Ρ Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅ n-Π³ΠΎ Π±ΠΈΡΠ° Π½Π° ΠΏΡΠΎΡΠΈΠ²ΠΎΠΏΠΎΠ»ΠΎΠΆΠ½ΠΎΠ΅.
ΠΠ»Ρ ΡΡΠΎΠ³ΠΎ Π²ΠΎΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΠΌΡΡ ΡΡΠ½ΠΊΡΠΈΠ΅ΠΉ ΠΈΡΠΊΠ»ΡΡΠ°ΡΡΠ΅Π³ΠΎ ΠΈΠ»ΠΈ: ΠΏΡΠΈΠΌΠ΅Π½ΠΈΠΌ ΠΎΠΏΠ΅ΡΠ°ΡΠΈΡ XOR ΠΊ ΡΠΈΡΠ»Ρ, ΠΊΠΎΡΠΎΡΠΎΠ΅ ΡΠΎΡΡΠΎΠΈΡ ΠΈΠ· ΠΎΠ΄Π½ΠΈΡ Π½ΡΠ»Π΅ΠΉ ΠΈ ΠΎΠ΄Π½ΠΎΠΉ Π΅Π΄ΠΈΠ½ΠΈΡΡ Π½Π° ΠΌΠ΅ΡΡΠ΅ Π½ΡΠΆΠ½ΠΎΠ³ΠΎ Π±ΠΈΡΠ°.
ΠΠΈΡΠΎΠ²ΡΠ΅ ΡΠ»Π°Π³ΠΈ
Π Π°ΡΠΌΠΌΠΎΡΡΠΈΠΌ ΡΠΈΠ½ΡΠ΅ΡΠΈΡΠ΅ΡΠΊΠΈΠΉ ΠΏΡΠΈΠΌΠ΅Ρ. ΠΡΡΡΡ Ρ Π½Π°Ρ Π΅ΡΡΡ ΡΡΠΈ Π»ΠΎΠ³ΠΈΡΠ΅ΡΠΊΠΈΠ΅ ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΡΠ΅, ΠΈ Π½Π°ΠΌ Π½ΡΠΆΠ½ΠΎ Π²ΡΠ²Π΅ΡΡΠΈ ΠΎΠΏΡΠ΅Π΄Π΅Π»ΡΠ½Π½ΠΎΠ΅ Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅ Π² Π·Π°Π²ΠΈΡΠΈΠΌΠΎΡΡΠΈ ΠΎΡ Π²ΡΠ΅Ρ ΡΡΠΈΡ ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΡΡ ΡΡΠ°Π·Ρ. ΠΡΠ΅Π²ΠΈΠ΄Π½ΠΎ, ΡΡΠΎ ΠΌΠΎΠΆΠ΅Ρ Π±ΡΡΡ 2 3 Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΡΡ Π²Π°ΡΠΈΠ°Π½ΡΠΎΠ². ΠΠ°ΠΏΠΈΡΠ΅ΠΌ ΡΡΠΎ ΡΡΠ»ΠΎΠ²ΠΈΠ΅ Π² Π²ΠΈΠ΄Π΅ Π²Π΅ΡΠ²Π»Π΅Π½ΠΈΡ:
ΠΡ ΠΏΠΎΠ»ΡΡΠΈΠ»ΠΈ 8 Π²Π΅ΡΠ²Π΅ΠΉ. ΠΡΡΡΡ ΡΠ΅ΠΏΠ΅ΡΡ Π½Π°ΠΌ ΠΏΠΎΠ½Π°Π΄ΠΎΠ±ΠΈΠ»ΠΎΡΡ Π΄ΠΎΠ±Π°Π²ΠΈΡΡ Π΅ΡΡ ΠΎΠ΄Π½ΠΎ ΡΡΠ»ΠΎΠ²ΠΈΠ΅. Π’ΠΎΠ³Π΄Π° ΡΠΈΡΠ»ΠΎ Π²Π΅ΡΠ²Π΅ΠΉ ΡΠ΄Π²ΠΎΠΈΡΡΡ, ΠΈ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠ° ΡΡΠ°Π½Π΅Ρ Π΅ΡΡ ΡΠ»ΠΎΠΆΠ½Π΅ΠΉ Π΄Π»Ρ ΠΏΠΎΠ½ΠΈΠΌΠ°Π½ΠΈΡ ΠΈ ΠΎΡΠ»Π°Π΄ΠΊΠΈ. ΠΠ΅ΡΠ΅ΠΏΠΈΡΠ΅ΠΌ ΠΏΡΠΈΠΌΠ΅Ρ.
ΠΡΠ»ΠΈ ΠΊΠ°ΠΆΠ΄ΠΎΠ΅ ΠΈΠ· Π½Π°ΡΠΈΡ Π»ΠΎΠ³ΠΈΡΠ΅ΡΠΈΡ Π·Π½Π°ΡΠ΅Π½ΠΈΠΉ ΡΠ΄Π²ΠΈΠ½ΡΡΡ Π½Π° ΡΠ²ΠΎΡ ΡΠΈΡΠ»ΠΎ Π±ΠΈΡ Π²Π»Π΅Π²ΠΎ ΠΈ Π»ΠΎΠ³ΠΈΡΠ΅ΡΠΊΠΈ ΡΠ»ΠΎΠΆΠΈΡΡ, ΡΠΎ ΠΌΡ ΠΏΠΎΠ»ΡΡΠΈΠΌ ΡΠ²ΠΎΡ ΡΠ½ΠΈΠΊΠ°Π»ΡΠ½ΡΡ ΠΊΠΎΠΌΠ±ΠΈΠ½Π°ΡΠΈΡ Π±ΠΈΡ Π² Π·Π°Π²ΠΈΡΠΈΠΌΠΎΡΠΈ ΠΎΡ Π·Π½Π°ΡΠ΅Π½ΠΈΠΉ a, b ΠΈ c:
ΠΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΠΌ ΡΡΠΎΡ ΠΏΠΎΠ΄Ρ ΠΎΠ΄ ΠΊ Π½Π°ΡΠ΅ΠΉ Π·Π°Π΄Π°ΡΠ΅ ΠΈ Π·Π°ΠΌΠ΅Π½ΠΈΠΌ Π²Π΅ΡΠ²Π΅Π»Π΅Π½ΠΈΠ΅ Π½Π° switch:
ΠΡΠΎΡ ΠΌΠ΅ΡΠΎΠ΄ ΠΎΡΠ΅Π½Ρ ΡΠ°ΡΡΠΎ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΡΡΡ Π΄Π»Ρ Π½Π°Π·Π½Π°ΡΠ΅Π½ΠΈΡ ΠΎΠΏΡΠΈΠΉ ΡΡΠ½ΠΊΡΠΈΠΉ Π² ΡΠ°Π·Π½ΡΡ ΡΠ·ΡΠΊΠ°Ρ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠΈΡΠΎΠ²Π°Π½ΠΈΡ. ΠΠ°ΠΆΠ΄ΡΠΉ ΡΠ»Π°Π³ ΠΏΡΠΈΠ½ΠΈΠΌΠ°Π΅Ρ ΡΠ²ΠΎΡ ΡΠ½ΠΈΠΊΠ°Π»ΡΠ½ΠΎΠ΅ Π½Π°Π·Π²Π°Π½ΠΈΠ΅, Π° ΠΈΡ ΡΠΎΠ²ΠΌΠ΅ΡΡΠ½ΠΎΠ΅ Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅ ΠΊΠ°ΠΊ Π»ΠΎΠ³ΠΈΡΠ΅ΡΠΊΠ°Ρ ΡΡΠΌΠΌΠ° Π²ΡΠ΅Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΠΌΡΡ ΡΠ»Π°Π³ΠΎΠ². ΠΠ°ΠΏΡΠΈΠΌΠ΅Ρ, Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠ° fcntl:
ΠΠ΄Π΅ΡΡ ΡΠ»Π°Π³ O_RDWR ΡaΠ²Π΅Π½
00000000000000000000001000000000
ΠΈ O_APPEND
Π£ΡΠΎΠΊ β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++ ΠΎΠ½ ΡΠ°ΠΊΠΎΠΉ: