ΠΠΎΠ³Π΄Π°-ΡΠΎ Π΄Π°Π²Π½ΠΎ Ρ Π½Π°ΠΏΠΈΡΠ°Π» ΡΠ²ΠΎΠΉ
Π‘Π΅Π³ΠΎΠ΄Π½Ρ ΠΌΡ ΠΏΠΎΠΏΡΠΎΠ±ΡΠ΅ΠΌ ΠΊΠΎΠΏΠ½ΡΡΡ ΡΡΡΡ-ΡΡΡΡ Π³Π»ΡΠ±ΠΆΠ΅ ΠΈ ΡΠ°ΡΡΠΌΠΎΡΡΠΈΠΌ Π°Π»Π³ΠΎΡΠΈΡΠΌ LSB. ΠΡΠ»ΠΈ Π²Π°ΠΌ ΠΈΠ½ΡΠ΅ΡΠ΅ΡΠ½ΠΎ, ΠΌΠΈΠ»ΠΎΡΡΠΈ ΠΏΡΠΎΡΡ ΠΏΠΎΠ΄ ΠΊΠ°Ρ. (ΠΠΎΠ΄ ΠΊΠ°ΡΠΎΠΌ ΡΡΠ°ΡΠΈΠΊ: ΠΎΠΊΠΎΠ»ΠΎ ΠΌΠ΅Π³Π°Π±Π°ΠΉΡΠ°.)
ΠΡΠ΅ΠΆΠ΄Π΅ Π²ΡΠ΅Π³ΠΎ, Π½Π΅ΠΎΠ±Ρ
ΠΎΠ΄ΠΈΠΌΠΎ ΡΠ΄Π΅Π»Π°ΡΡ Π½Π΅Π±ΠΎΠ»ΡΡΠΎΠ΅ Π²ΡΡΡΠΏΠ»Π΅Π½ΠΈΠ΅. ΠΡΠ΅ΠΌ ΠΈΠ·Π²Π΅ΡΡΠ½ΠΎ, ΡΡΠΎ ΠΏΡΠ΅Π΄Π½Π°Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅ ΠΊΡΠΈΠΏΡΠΎΠ³ΡΠ°ΡΠΈΠΈ β ΡΠ΄Π΅Π»Π°ΡΡ Π½Π΅Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΡΠΌ ΡΡΠ΅Π½ΠΈΠ΅ ΡΠ΅ΠΊΡΠ΅ΡΠ½ΠΎΠΉ ΠΈΠ½ΡΠΎΡΠΌΠ°ΡΠΈΠΈ. Π Π°Π·ΡΠΌΠ΅Π΅ΡΡΡ, ΠΊΡΠΈΠΏΡΠΎΠ³ΡΠ°ΡΠΈΡ ΠΈΠΌΠ΅Π΅Ρ ΡΠ²ΠΎΠΈ ΠΎΠ±Π»Π°ΡΡΠΈ ΠΏΡΠΈΠΌΠ΅Π½Π΅Π½ΠΈΡ, Π½ΠΎ Π΅ΡΡΡ ΠΈ Π΄ΡΡΠ³ΠΎΠΉ ΠΏΠΎΠ΄Ρ
ΠΎΠ΄ ΠΊ Π·Π°ΡΠΈΡΠ΅ Π΄Π°Π½Π½ΡΡ
. ΠΠΎΠΆΠ½ΠΎ Π½Π΅ ΡΠΈΡΡΠΎΠ²Π°ΡΡ ΠΈΠ½ΡΠΎΡΠΌΠ°ΡΠΈΡ, Π° ΡΠ΄Π΅Π»Π°ΡΡ Π²ΠΈΠ΄, ΡΡΠΎ Ρ Π½Π°Ρ Π΅Ρ Π½Π΅Ρ. ΠΠΌΠ΅Π½Π½ΠΎ Π΄Π»Ρ ΡΡΠΎΠ³ΠΎ ΠΈ ΠΏΡΠΈΠ΄ΡΠΌΠ°Π½Π° ΡΡΠ΅Π³Π°Π½ΠΎΠ³ΡΠ°ΡΠΈΡ. ΠΠΈΠΊΠΈΠΏΠ΅Π΄ΠΈΡ ΡΠ²Π΅ΡΡΠ΅Ρ Π½Π°Ρ ΡΡΠΎ, Β«ΡΡΠ΅Π³Π°Π½ΠΎΠ³ΡΠ°ΡΠΈΡ (ΠΎΡ Π³ΡΠ΅Ρ. ΟΟΞ΅Ξ³Ξ±Ξ½ΞΏΟ β ΡΠΊΡΡΡΡΠΉ ΠΈ Π³ΡΠ΅Ρ. Ξ³ΟΞ±ΟΟ β ΠΏΠΈΡΡ, Π±ΡΠΊΠ²Π°Π»ΡΠ½ΠΎ Β«ΡΠ°ΠΉΠ½ΠΎΠΏΠΈΡΡΒ») β ΡΡΠΎ Π½Π°ΡΠΊΠ° ΠΎ ΡΠΊΡΡΡΠΎΠΉ ΠΏΠ΅ΡΠ΅Π΄Π°ΡΠ΅ ΠΈΠ½ΡΠΎΡΠΌΠ°ΡΠΈΠΈ ΠΏΡΡΡΠΌ ΡΠΎΡ
ΡΠ°Π½Π΅Π½ΠΈΡ Π² ΡΠ°ΠΉΠ½Π΅ ΡΠ°ΠΌΠΎΠ³ΠΎ ΡΠ°ΠΊΡΠ° ΠΏΠ΅ΡΠ΅Π΄Π°ΡΠΈ.
ΠΠΎΠ½Π΅ΡΠ½ΠΎ ΠΆΠ΅, Π½ΠΈΠΊΡΠΎ Π½Π΅ Π·Π°ΠΏΡΠ΅ΡΠ°Π΅Ρ ΡΠΎΠ²ΠΌΠ΅ΡΠ°ΡΡ ΠΊΡΠΈΠΏΡΠΎΠ³ΡΠ°ΡΠΈΡΠ΅ΡΠΊΠΈΠ΅ ΠΈ ΡΡΠ΅Π³Π°Π½ΠΎΠ³ΡΠ°ΡΠΈΡΠ΅ΡΠΊΠΈΠ΅ ΠΌΠ΅ΡΠΎΠ΄Ρ. ΠΠΎΠ»Π΅Π΅ ΡΠΎΠ³ΠΎ, Π½Π° ΠΏΡΠ°ΠΊΡΠΈΠΊΠ΅ ΡΠ°ΠΊ ΠΈ Π΄Π΅Π»Π°ΡΡ, Π½ΠΎ Π½Π°ΡΠ° Π·Π°Π΄Π°ΡΠ° ΡΠ°Π·ΠΎΠ±ΡΠ°ΡΡΡΡ Ρ ΠΎΡΠ½ΠΎΠ²Π°ΠΌΠΈ. ΠΡΠ»ΠΈ Π²Π½ΠΈΠΌΠ°ΡΠ΅Π»ΡΠ½ΠΎ ΠΈΠ·ΡΡΠΈΡΡ ΡΡΠ°ΡΡΡ Ρ ΠΠΈΠΊΠΈΠΏΠ΅Π΄ΠΈΠΈ, ΠΌΠΎΠΆΠ½ΠΎ ΡΠ·Π½Π°ΡΡ, ΡΡΠΎ Π² Π°Π»Π³ΠΎΡΠΈΡΠΌΠ°Ρ ΡΡΠ΅Π³Π°Π½ΠΎΠ³ΡΠ°ΡΠΈΠΈ ΡΠΈΠ³ΡΡΠΈΡΡΠ΅Ρ Ρ.Π½. ΠΊΠΎΠ½ΡΠ΅ΠΉΠ½Π΅Ρ ΠΈ ΡΠΎΠΎΠ±ΡΠ΅Π½ΠΈΠ΅. ΠΠΎΠ½ΡΠ΅ΠΉΠ½Π΅Ρ β ΡΡΠΎ Π»ΡΠ±Π°Ρ ΠΈΠ½ΡΠΎΡΠΌΠ°ΡΠΈΡ, ΠΏΠΎΠΌΠΎΠ³Π°ΡΡΠ°Ρ ΡΠΊΡΡΡΡ Π½Π°ΡΠ΅ ΡΠ΅ΠΊΡΠ΅ΡΠ½ΠΎΠ΅ ΡΠΎΠΎΠ±ΡΠ΅Π½ΠΈΠ΅.
Π Π½Π°ΡΠ΅ΠΌ ΡΠ»ΡΡΠ°Π΅ ΠΊΠΎΠ½ΡΠ΅ΠΉΠ½Π΅ΡΠΎΠΌ Π±ΡΠ΄Π΅Ρ Π²ΡΡΡΡΠΏΠ°ΡΡ ΠΊΠ°ΡΡΠΈΠ½ΠΊΠ° Π² ΡΠΎΡΠΌΠ°ΡΠ΅ BMP. ΠΠ»Ρ Π½Π°ΡΠ°Π»Π° ΡΠ°ΡΡΠΌΠΎΡΡΠΈΠΌ ΡΡΡΡΠΊΡΡΡΡ ΡΡΠΎΠ³ΠΎ ΡΠ°ΠΉΠ»Π°. Π€Π°ΠΉΠ» ΡΡΠ»ΠΎΠ²Π½ΠΎ ΠΌΠΎΠΆΠ½ΠΎ ΡΠ°Π·Π±ΠΈΡΡ Π½Π° 4 ΡΠ°ΡΡΠΈ: Π·Π°Π³ΠΎΠ»ΠΎΠ²ΠΎΠΊ ΡΠ°ΠΉΠ»Π°, Π·Π°Π³ΠΎΠ»ΠΎΠ²ΠΎΠΊ ΠΈΠ·ΠΎΠ±ΡΠ°ΠΆΠ΅Π½ΠΈΡ, ΠΏΠ°Π»ΠΈΡΡΡ ΠΈ ΡΠ°ΠΌΠΎ ΠΈΠ·ΠΎΠ±ΡΠ°ΠΆΠ΅Π½ΠΈΠ΅. ΠΠ»Ρ Π½Π°ΡΠΈΡ ΡΠ΅Π»Π΅ΠΉ Π½Π°Π΄ΠΎ Π·Π½Π°ΡΡ ΡΠΎΠ»ΡΠΊΠΎ ΡΠΎ, ΡΡΠΎ Π·Π°ΠΏΠΈΡΠ°Π½ΠΎ Π² Π·Π°Π³ΠΎΠ»ΠΎΠ²ΠΊΠ΅.
ΠΠ΅ΡΠ²ΡΠ΅ Π΄Π²Π° Π±Π°ΠΉΡΠ° Π·Π°Π³ΠΎΠ»ΠΎΠ²ΠΊΠ° β ΡΡΠΎ ΡΠΈΠ³Π½Π°ΡΡΡΠ° BM, Π΄Π°Π»Π΅Π΅ Π² Π΄Π²ΠΎΠΉΠ½ΠΎΠΌ ΡΠ»ΠΎΠ²Π΅ Π·Π°ΠΏΠΈΡΠ°Π½ ΡΠ°Π·ΠΌΠ΅Ρ ΡΠ°ΠΉΠ»Π° Π² Π±Π°ΠΉΡΠ°Ρ , ΡΠ»Π΅Π΄ΡΡΡΠΈΠ΅ 4 Π±Π°ΠΉΡΠ° Π·Π°ΡΠ΅Π·Π΅ΡΠ²ΠΈΡΠΎΠ²Π°Π½Ρ ΠΈ Π΄ΠΎΠ»ΠΆΠ½Ρ ΡΠΎΠ΄Π΅ΡΠΆΠ°ΡΡ Π½ΡΠ»ΠΈ ΠΈ, Π½Π°ΠΊΠΎΠ½Π΅Ρ, Π² Π΅ΡΡ ΠΎΠ΄Π½ΠΎΠΌ Π΄Π²ΠΎΠΉΠ½ΠΎΠΌ ΡΠ»ΠΎΠ²Π΅ Π·Π°ΠΏΠΈΡΠ°Π½ΠΎ ΡΠΌΠ΅ΡΠ΅Π½ΠΈΠ΅ ΠΎΡ Π½Π°ΡΠ°Π»Π° ΡΠ°ΠΉΠ»Π°, Π΄ΠΎ ΡΠΎΠ±ΡΡΠ²Π΅Π½Π½ΠΎ Π±Π°ΠΉΡΠΎΠ² ΠΈΠ·ΠΎΠ±ΡΠ°ΠΆΠ΅Π½ΠΈΡ. Π 24-Π±ΠΈΡΠ½ΠΎΠΌ bmp-ΡΠ°ΠΉΠ»Π΅ ΠΊΠ°ΠΆΠ΄ΡΠΉ ΠΏΠΈΠΊΡΠ΅Π» ΠΊΠΎΠ΄ΠΈΡΡΡΡΡΡ ΡΡΠ΅ΠΌΡ Π±Π°ΠΉΡΠ°ΠΌΠΈ BGR.
Π’Π΅ΠΏΠ΅ΡΡ ΠΌΡ Π·Π½Π°Π΅ΠΌ, ΠΊΠ°ΠΊ Π΄ΠΎΠ±ΡΠ°ΡΡΡΡ Π΄ΠΎ ΠΈΠ·ΠΎΠ±ΡΠ°ΠΆΠ΅Π½ΠΈΡ, ΠΎΡΡΠ°Π»ΠΎΡΡ ΠΏΠΎΠ½ΡΡΡ, ΠΊΠ°ΠΊ ΡΡΠ΄Π° ΠΌΠΎΠΆΠ½ΠΎ Π·Π°ΠΏΠΈΡΠ°ΡΡ Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΡΡ Π½Π°ΠΌ ΠΈΠ½ΡΠΎΡΠΌΠ°ΡΠΈΡ. ΠΠ»Ρ ΡΡΠΎΠ³ΠΎ Π½Π°ΠΌ ΠΈ ΠΏΡΠΈΠ³ΠΎΠ΄ΠΈΡΡΡ ΠΌΠ΅ΡΠΎΠ΄ LSB. Π‘ΡΡΡ ΠΌΠ΅ΡΠΎΠ΄Π° Π·Π°ΠΊΠ»ΡΡΠ°Π΅ΡΡΡ Π² ΡΠ»Π΅Π΄ΡΡΡΠ΅ΠΌ: ΠΌΡ Π·Π°ΠΌΠ΅Π½ΡΠ΅ΠΌ ΠΌΠ»Π°Π΄ΡΠΈΠ΅ Π±ΠΈΡΡ Π² Π±Π°ΠΉΡΠ°Ρ , ΠΎΡΠ²Π΅ΡΠ°ΡΡΠΈΡ Π·Π° ΠΊΠΎΠ΄ΠΈΡΠΎΠ²Π°Π½ΠΈΠ΅ ΡΠ²Π΅ΡΠ°. ΠΠΎΠΏΡΡΡΠΈΠΌ, Π΅ΡΠ»ΠΈ ΠΎΡΠ΅ΡΠ΅Π΄Π½ΠΎΠΉ Π±Π°ΠΉΡ Π½Π°ΡΠ΅Π³ΠΎ ΡΠ΅ΠΊΡΠ΅ΡΠ½ΠΎΠ³ΠΎ ΡΠΎΠΎΠ±ΡΠ΅Π½ΠΈΡ β 11001011, Π° Π±Π°ΠΉΡΡ Π² ΠΈΠ·ΠΎΠ±ΡΠ°ΠΆΠ΅Π½ΠΈΠΈ ββ¦11101100 01001110 01111100 0101100111β¦, ΡΠΎ ΠΊΠΎΠ΄ΠΈΡΠΎΠ²Π°Π½ΠΈΠ΅ Π±ΡΠ΄Π΅Ρ Π²ΡΠ³Π»ΡΠ΄Π΅ΡΡ ΡΠ°ΠΊ. ΠΡ ΡΠ°Π·ΠΎΠ±ΡΡΠΌ Π±Π°ΠΉΡ ΡΠ΅ΠΊΡΠ΅ΡΠ½ΠΎΠ³ΠΎ ΡΠΎΠΎΠ±ΡΠ΅Π½ΠΈΡ Π½Π° 4 Π΄Π²ΡΡ Π±ΠΈΡΠΎΠ²ΡΠ΅ ΡΠ°ΡΡΠΈ: 11, 00, 10, 11, ΠΈ Π·Π°ΠΌΠ΅Π½ΠΈΠΌ ΠΏΠΎΠ»ΡΡΠ΅Π½Π½ΡΠΌΠΈ ΡΡΠ°Π³ΠΌΠ΅Π½ΡΠ°ΠΌΠΈ ΠΌΠ»Π°Π΄ΡΠΈΠ΅ Π±ΠΈΡΡ ΠΈΠ·ΠΎΠ±ΡΠ°ΠΆΠ΅Π½ΠΈΡ: β¦11101111 01001100 01111110 0101100111β¦. Π’Π°ΠΊΠ°Ρ Π·Π°ΠΌΠ΅Π½Π° Π² ΠΎΠ±ΡΠ΅ΠΌ ΡΠ»ΡΡΠ°Π΅ Π½Π΅ Π·Π°ΠΌΠ΅ΡΠ½Π° ΡΠ΅Π»ΠΎΠ²Π΅ΡΠ΅ΡΠΊΠΎΠΌΡ Π³Π»Π°Π·Ρ. ΠΠΎΠ»Π΅Π΅ ΡΠΎΠ³ΠΎ, ΠΌΠ½ΠΎΠ³ΠΈΠ΅ ΡΡΠ°ΡΡΠ΅ ΡΡΡΡΠΎΠΉΡΡΠ²Π° Π²ΡΠ²ΠΎΠ΄Π°, Π΄Π°ΠΆΠ΅ Π½Π΅ ΡΠΌΠΎΠ³ΡΡ ΠΎΡΠΎΠ±ΡΠ°Π·ΠΈΡΡ ΡΠ°ΠΊΠΈΠ΅ Π½Π΅Π·Π½Π°ΡΠΈΡΠ΅Π»ΡΠ½ΡΠ΅ ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Ρ.
ΠΠΎΠ½ΡΡΠ½ΠΎ, ΡΡΠΎ ΠΌΠΎΠΆΠ½ΠΎ ΠΌΠ΅Π½ΡΡΡ Π½Π΅ ΡΠΎΠ»ΡΠΊΠΎ 2 ΠΌΠ»Π°Π΄ΡΠΈΡ Π±ΠΈΡΠ°, Π½ΠΎ ΠΈ Π»ΡΠ±ΠΎΠ΅ ΠΈΡ ΠΊΠΎΠ»ΠΈΡΠ΅ΡΡΠ²ΠΎ. Π’ΡΡ Π΅ΡΡΡ ΡΠ»Π΅Π΄ΡΡΡΠ°Ρ Π·Π°ΠΊΠΎΠ½ΠΎΠΌΠ΅ΡΠ½ΠΎΡΡΡ: ΡΠ΅ΠΌ Π±ΠΎΠ»ΡΡΠ΅Π΅ ΠΊΠΎΠ»ΠΈΡΠ΅ΡΡΠ²ΠΎ Π±ΠΈΡ ΠΌΡ ΠΌΠ΅Π½ΡΠ΅ΠΌ, ΡΠ΅ΠΌ Π±ΠΎΠ»ΡΡΠΈΠΉ ΠΎΠ±ΡΡΠΌ ΠΈΠ½ΡΠΎΡΠΌΠ°ΡΠΈΠΈ ΠΌΡ ΠΌΠΎΠΆΠ΅ΠΌ ΡΠΏΡΡΡΠ°ΡΡ, ΠΈ ΡΠ΅ΠΌ Π±ΠΎΠ»ΡΡΠΈΠ΅ ΠΏΠΎΠΌΠ΅Ρ ΠΈ Π² ΠΈΡΡ ΠΎΠ΄Π½ΠΎΠΌ ΠΈΠ·ΠΎΠ±ΡΠ°ΠΆΠ΅Π½ΠΈΠΈ ΡΡΠΎ Π²ΡΠ·ΠΎΠ²Π΅Ρ. ΠΠ»Ρ ΠΏΡΠΈΠΌΠ΅ΡΠ° Π²ΠΎΡ Π²Π°ΠΌ Π΄Π²Π° ΠΈΠ·ΠΎΠ±ΡΠ°ΠΆΠ΅Π½ΠΈΡ:
ΠΡΠΈ Π²ΡΡΠΌ ΠΆΠ΅Π»Π°Π½ΠΈΠΈ Ρ ΡΠ°ΠΊ ΠΈ Π½Π΅ ΡΡΠΌΠ΅Π» ΡΠ²ΠΈΠ΄Π΅ΡΡ ΡΠ°Π·Π½ΠΈΡΡ ΠΌΠ΅ΠΆΠ΄Ρ Π½ΠΈΠΌΠΈ, Π° ΡΠ΅ΠΌ Π½Π΅ ΠΌΠ΅Π½Π΅Π΅ Π²ΠΎ Π²ΡΠΎΡΠΎΠΌ ΠΈΠ·ΠΎΠ±ΡΠ°ΠΆΠ΅Π½ΠΈΠΈ Ρ ΠΏΠΎΠΌΠΎΡΡΡ ΠΎΠΏΠΈΡΠ°Π½Π½ΠΎΠ³ΠΎ ΠΌΠ΅ΡΠΎΠ΄Π° ΡΠΏΡΡΡΠ°Π½Π° ΠΏΠΎΡΠΌΠ° ΠΡΡΠΈΡΠ° ΠΡΡΠΎΠ»Π»Π° Β«ΠΡ
ΠΎΡΠ° Π½Π° Π‘Π½Π°ΡΠΊΠ°Β». ΠΡΠ»ΠΈ Π²Ρ Π΄ΠΎΡΠΈΡΠ°Π»ΠΈ Π΄ΠΎ ΡΡΠΎΠ³ΠΎ ΠΌΠΎΠΌΠ΅Π½ΡΠ°, ΡΠΎ Π²Π°ΠΌ Π½Π°Π²Π΅ΡΠ½ΡΠΊΠ° ΠΈΠ½ΡΠ΅ΡΠ΅ΡΠ½ΠΎ ΡΠ·Π½Π°ΡΡ ΠΈ ΠΎ ΡΠ΅Π°Π»ΠΈΠ·Π°ΡΠΈΠΈ. ΠΠ½Π° Π΄ΠΎΠ²ΠΎΠ»ΡΠ½Π° ΠΏΡΠΎΡΡΠ°, Π½ΠΎ ΡΡΠ°Π·Ρ ΠΏΡΠ΅Π΄ΡΠΏΡΠ΅ΠΆΡ, ΡΡΠΎ ΡΠ΄Π΅Π»Π°Π½ΠΎ Π²ΡΡ Π½Π° Delphi. ΠΡΠΈΡΠΈΠ½ ΡΡΠΎΠΌΡ Π΄Π²Π΅: 1. Π― ΡΡΠΈΡΠ°Ρ Delphi Ρ
ΠΎΡΠΎΡΠΈΠΌ Π³ΠΎΠ΄Π½ΡΠΌ ΡΠ·ΡΠΊΠΎΠΌ; 2. ΠΡΠ° ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠ° ΡΠΎΠ΄ΠΈΠ»Π°ΡΡ, Π² ΠΏΡΠΎΡΠ΅ΡΡΠ΅ ΠΏΠΎΠ΄Π³ΠΎΡΠΎΠ²ΠΊΠΈ ΠΊΡΡΡΠ° ΠΏΠΎ ΠΎΡΠ½ΠΎΠ²Π°ΠΌ ΠΌΠ°ΡΠΈΠ½Π½ΠΎΠ³ΠΎ Π·ΡΠ΅Π½ΠΈΡ, Π° ΡΠ΅Π±ΡΡΠ°, ΠΊΠΎΡΠΎΡΡΠΌ Ρ ΡΡΠΎΡ ΠΊΡΡΡ ΡΠΈΡΠ°Ρ, ΠΏΠΎΠΊΠ° Π½ΠΈΡΠ΅Π³ΠΎ ΠΊΡΠΎΠΌΠ΅ Delphi Π½Π΅ Π·Π½Π°ΡΡ. ΠΠ»Ρ ΡΠ΅Ρ
, ΠΊΡΠΎ Π½Π΅ Π·Π½Π°ΠΊΠΎΠΌ Ρ ΡΠΈΠ½ΡΠ°ΠΊΡΠΈΡΠΎΠΌ Π½Π°Π΄ΠΎ ΠΏΠΎΡΡΠ½ΠΈΡΡ ΠΎΠ΄Π½Ρ Π²Π΅ΡΡ shl x β ΠΏΠΎΠ±ΠΈΡΠΎΠ²ΡΠΉ ΡΠ΄Π²ΠΈΠ³ Π²Π»Π΅Π²ΠΎ Π½Π° x, shr x β ΠΏΠΎΠ±ΠΈΡΠΎΠ²ΡΠΉ ΡΠ΄Π²ΠΈΠ³ Π²ΠΏΡΠ°Π²ΠΎ Π½Π° x.
Π‘ΡΠΈΡΠ°Π΅ΠΌ, ΡΡΠΎ ΠΌΡ Π·Π°ΠΏΠΈΡΡΠ²Π°Π΅ΠΌ Π² ΠΊΠΎΠ½ΡΠ΅ΠΉΠ½Π΅Ρ ΡΠ΅ΠΊΡΡ, Ρ
ΡΠ°Π½ΡΡΠΈΠΉΡΡ Π² ΡΡΡΠΎΠΊΠ΅ ΠΈ Π·Π°ΠΌΠ΅Π½ΡΠ΅ΠΌ ΠΌΠ»Π°Π΄ΡΠΈΠ΅ Π΄Π²Π° Π±Π°ΠΉΡΠ°:
ΠΠΎΠ΄ Π΄Π»Ρ Π·Π°ΠΏΠΈΡΠΈ:
for i:=1 to length(str) do
begin
l1:=byte(str[i]) shr 6;
l2:=byte(str[i]) shl 2; l2:=l2 shr 6;
l3:=byte(str[i]) shl 4; l3:=l3 shr 6;
l4:=byte(str[i]) shl 6; l4:=l4 shr 6;
f.ReadBuffer(tmp,1);
f.Position:=f.Position-1;
tmp:=((tmp shr 2) shl 2)+l1;
f.WriteBuffer(tmp,1);
f.ReadBuffer(tmp,1);
f.Position:=f.Position-1;
tmp:=((tmp shr 2) shl 2)+l2;
f.WriteBuffer(tmp,1);
f.ReadBuffer(tmp,1);
f.Position:=f.Position-1;
tmp:=((tmp shr 2) shl 2)+l3;
f.WriteBuffer(tmp,1);
f.ReadBuffer(tmp,1);
f.Position:=f.Position-1;
tmp:=((tmp shr 2) shl 2)+l4;
f.WriteBuffer(tmp,1);
end;
ΠΊΠΎΠ΄ Π΄Π»Ρ ΡΡΠΈΡΡΠ²Π°Π½ΠΈΡ:
for i:=1 to MsgSize do
begin
f.ReadBuffer(tmp,1);
l1:=tmp shl 6;
f.ReadBuffer(tmp,1);
l2:=tmp shl 6; l2:=l2 shr 2;
f.ReadBuffer(tmp,1);
l3:=tmp shl 6; l3:=l3 shr 4;
f.ReadBuffer(tmp,1);
l4:=tmp shl 6; l4:=l4 shr 6;
str:=str+char(l1+l2+l3+l4);
end;
ΠΡ ΠΈ Π΄Π»Ρ ΡΠΎΠ²ΡΠ΅ΠΌ Π»Π΅Π½ΠΈΠ²ΡΡ
β
Π‘ΠΏΠ°ΡΠΈΠ±ΠΎ.
ΠΡΡΠΎΡΠ½ΠΈΠΊ: habr.com