π₯ ΠΠ°ΠΊ ΡΠ΄Π΅Π»Π°ΡΡ ΡΠ΄Π²ΠΈΠ³ Π² ΠΏΠΈΡΠΎΠ½Π΅: ΠΏΡΠΎΡΡΠΎΠΉ Π³ΠΈΠ΄ Π΄Π»Ρ Π½Π°ΡΠΈΠ½Π°ΡΡΠΈΡ ΡΠ°Π·ΡΠ°Π±ΠΎΡΡΠΈΠΊΠΎΠ² π₯
Π ΠΏΠΈΡΠΎΠ½Π΅ ΠΌΠΎΠΆΠ½ΠΎ ΡΠ΄Π΅Π»Π°ΡΡ ΡΠ΄Π²ΠΈΠ³ Ρ ΠΏΠΎΠΌΠΎΡΡΡ ΠΎΠΏΠ΅ΡΠ°ΡΠΎΡΠ° shift (<<) Π΄Π»Ρ ΡΠ΅Π»ΡΡ ΡΠΈΡΠ΅Π» ΠΈ ΠΎΠΏΠ΅ΡΠ°ΡΠΎΡΠ° rotate Π΄Π»Ρ ΡΠΏΠΈΡΠΊΠΎΠ².
ΠΠ»Ρ ΡΠ΅Π»ΡΡ ΡΠΈΡΠ΅Π»:
num = 5
shifted_num = num << 2
print(shifted_num) # Output: 20
ΠΠ»Ρ ΡΠΏΠΈΡΠΊΠΎΠ²:
my_list = [1, 2, 3, 4, 5]
shifted_list = my_list[-1:] + my_list[:-1]
print(shifted_list) # Output: [5, 1, 2, 3, 4]
ΠΠ΅ΡΠ°Π»ΡΠ½ΡΠΉ ΠΎΡΠ²Π΅Ρ
ΠΡΠΈΠ²Π΅Ρ! Π ΡΡΠΎΠΉ ΡΡΠ°ΡΡΠ΅ Ρ ΡΠ°ΡΡΠΊΠ°ΠΆΡ ΡΠ΅Π±Π΅, ΠΊΠ°ΠΊ ΡΠ΄Π΅Π»Π°ΡΡ ΡΠ΄Π²ΠΈΠ³ Π² Python. Π‘Π΄Π²ΠΈΠ³ - ΡΡΠΎ ΠΎΠ΄Π½Π° ΠΈΠ· Π±Π°Π·ΠΎΠ²ΡΡ ΠΎΠΏΠ΅ΡΠ°ΡΠΈΠΉ, ΠΊΠΎΡΠΎΡΡΡ ΠΌΠΎΠΆΠ½ΠΎ Π²ΡΠΏΠΎΠ»Π½ΡΡΡ Ρ ΡΠΈΡΠ»Π°ΠΌΠΈ Π² ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠΈΡΠΎΠ²Π°Π½ΠΈΠΈ. ΠΠ½Π° ΠΏΠΎΠ·Π²ΠΎΠ»ΡΠ΅Ρ ΠΈΠ·ΠΌΠ΅Π½ΠΈΡΡ ΠΏΠΎΠ·ΠΈΡΠΈΡ Π±ΠΈΡΠΎΠ² ΡΠΈΡΠ»Π° Π²Π»Π΅Π²ΠΎ ΠΈΠ»ΠΈ Π²ΠΏΡΠ°Π²ΠΎ.
Π‘Π΄Π²ΠΈΠ³ Π²Π»Π΅Π²ΠΎ (Left Shift)
Π‘Π΄Π²ΠΈΠ³ Π²Π»Π΅Π²ΠΎ - ΡΡΠΎ ΠΎΠΏΠ΅ΡΠ°ΡΠΈΡ, ΠΊΠΎΡΠΎΡΠ°Ρ ΠΈΠ·ΠΌΠ΅Π½ΡΠ΅Ρ Π±ΠΈΡΠΎΠ²ΠΎΠ΅ ΠΏΡΠ΅Π΄ΡΡΠ°Π²Π»Π΅Π½ΠΈΠ΅ ΡΠΈΡΠ»Π°, ΡΠ΄Π²ΠΈΠ³Π°Ρ Π²ΡΠ΅ Π΅Π³ΠΎ Π±ΠΈΡΡ Π²Π»Π΅Π²ΠΎ Π½Π° ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½Π½ΠΎΠ΅ ΠΊΠΎΠ»ΠΈΡΠ΅ΡΡΠ²ΠΎ ΠΏΠΎΠ·ΠΈΡΠΈΠΉ. Π Python ΡΠ΄Π²ΠΈΠ³ Π²Π»Π΅Π²ΠΎ Π²ΡΠΏΠΎΠ»Π½ΡΠ΅ΡΡΡ Ρ ΠΏΠΎΠΌΠΎΡΡΡ ΠΎΠΏΠ΅ΡΠ°ΡΠΎΡΠ° "<<" ΠΈ Π²ΡΠ³Π»ΡΠ΄ΠΈΡ ΡΠ»Π΅Π΄ΡΡΡΠΈΠΌ ΠΎΠ±ΡΠ°Π·ΠΎΠΌ:
number = 10
shifted_number = number << 2
print(shifted_number) # ΠΡΠ²ΠΎΠ΄ΠΈΡ 40
Π ΠΏΡΠΈΠΌΠ΅ΡΠ΅ Π²ΡΡΠ΅ ΠΌΡ ΠΈΠΌΠ΅Π΅ΠΌ ΡΠΈΡΠ»ΠΎ 10, ΠΊΠΎΡΠΎΡΠΎΠ΅ ΠΏΡΠ΅Π΄ΡΡΠ°Π²Π»Π΅Π½ΠΎ Π² Π΄Π²ΠΎΠΈΡΠ½ΠΎΠΉ ΡΠΎΡΠΌΠ΅ ΠΊΠ°ΠΊ "00001010". ΠΡΠΈ ΡΠ΄Π²ΠΈΠ³Π΅ Π½Π° 2 ΠΏΠΎΠ·ΠΈΡΠΈΠΈ Π²Π»Π΅Π²ΠΎ, ΠΌΡ ΠΏΠΎΠ»ΡΡΠ°Π΅ΠΌ ΡΠΈΡΠ»ΠΎ 40, Π΅Π³ΠΎ Π΄Π²ΠΎΠΈΡΠ½ΠΎΠ΅ ΠΏΡΠ΅Π΄ΡΡΠ°Π²Π»Π΅Π½ΠΈΠ΅ - "00101000". Π ΡΠ΅Π·ΡΠ»ΡΡΠ°ΡΠ΅ ΠΊΠ°ΠΆΠ΄ΡΠΉ Π±ΠΈΡ ΡΠΈΡΠ»Π° ΡΠ΄Π²ΠΈΠ³Π°Π΅ΡΡΡ Π²Π»Π΅Π²ΠΎ Π½Π° Π½ΡΠΆΠ½ΠΎΠ΅ ΠΊΠΎΠ»ΠΈΡΠ΅ΡΡΠ²ΠΎ ΠΏΠΎΠ·ΠΈΡΠΈΠΉ, Π° ΠΏΡΡΡΡΠ΅ ΠΏΠΎΠ·ΠΈΡΠΈΠΈ Π·Π°ΠΏΠΎΠ»Π½ΡΡΡΡΡ Π½ΡΠ»ΡΠΌΠΈ.
Π‘Π΄Π²ΠΈΠ³ Π²ΠΏΡΠ°Π²ΠΎ (Right Shift)
Π‘Π΄Π²ΠΈΠ³ Π²ΠΏΡΠ°Π²ΠΎ - ΡΡΠΎ ΠΎΠΏΠ΅ΡΠ°ΡΠΈΡ, ΠΊΠΎΡΠΎΡΠ°Ρ ΠΈΠ·ΠΌΠ΅Π½ΡΠ΅Ρ Π±ΠΈΡΠΎΠ²ΠΎΠ΅ ΠΏΡΠ΅Π΄ΡΡΠ°Π²Π»Π΅Π½ΠΈΠ΅ ΡΠΈΡΠ»Π°, ΡΠ΄Π²ΠΈΠ³Π°Ρ Π²ΡΠ΅ Π΅Π³ΠΎ Π±ΠΈΡΡ Π²ΠΏΡΠ°Π²ΠΎ Π½Π° ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½Π½ΠΎΠ΅ ΠΊΠΎΠ»ΠΈΡΠ΅ΡΡΠ²ΠΎ ΠΏΠΎΠ·ΠΈΡΠΈΠΉ. Π Python ΡΠ΄Π²ΠΈΠ³ Π²ΠΏΡΠ°Π²ΠΎ Π²ΡΠΏΠΎΠ»Π½ΡΠ΅ΡΡΡ Ρ ΠΏΠΎΠΌΠΎΡΡΡ ΠΎΠΏΠ΅ΡΠ°ΡΠΎΡΠ° ">>" ΠΈ Π²ΡΠ³Π»ΡΠ΄ΠΈΡ ΡΠ»Π΅Π΄ΡΡΡΠΈΠΌ ΠΎΠ±ΡΠ°Π·ΠΎΠΌ:
number = 40
shifted_number = number >> 2
print(shifted_number) # ΠΡΠ²ΠΎΠ΄ΠΈΡ 10
Π ΡΡΠΎΠΌ ΠΏΡΠΈΠΌΠ΅ΡΠ΅ Ρ Π½Π°Ρ Π΅ΡΡΡ ΡΠΈΡΠ»ΠΎ 40, ΠΏΡΠ΅Π΄ΡΡΠ°Π²Π»Π΅Π½Π½ΠΎΠ΅ Π² Π΄Π²ΠΎΠΈΡΠ½ΠΎΠΉ ΡΠΎΡΠΌΠ΅ ΠΊΠ°ΠΊ "00101000". ΠΡΠΈ ΡΠ΄Π²ΠΈΠ³Π΅ Π½Π° 2 ΠΏΠΎΠ·ΠΈΡΠΈΠΈ Π²ΠΏΡΠ°Π²ΠΎ, ΠΌΡ ΠΏΠΎΠ»ΡΡΠ°Π΅ΠΌ ΡΠΈΡΠ»ΠΎ 10, Π΅Π³ΠΎ Π΄Π²ΠΎΠΈΡΠ½ΠΎΠ΅ ΠΏΡΠ΅Π΄ΡΡΠ°Π²Π»Π΅Π½ΠΈΠ΅ - "00001010". ΠΡΠΈ ΡΠ΄Π²ΠΈΠ³Π΅ Π²ΠΏΡΠ°Π²ΠΎ Π±ΠΈΡΡ ΡΠΈΡΠ»Π° ΠΏΠ΅ΡΠ΅ΠΌΠ΅ΡΠ°ΡΡΡΡ Π²ΠΏΡΠ°Π²ΠΎ Π½Π° Π½ΡΠΆΠ½ΠΎΠ΅ ΠΊΠΎΠ»ΠΈΡΠ΅ΡΡΠ²ΠΎ ΠΏΠΎΠ·ΠΈΡΠΈΠΉ, Π° ΠΏΡΡΡΡΠ΅ ΠΏΠΎΠ·ΠΈΡΠΈΠΈ Π·Π°ΠΏΠΎΠ»Π½ΡΡΡΡΡ Π½ΡΠ»ΡΠΌΠΈ.
ΠΡΠΈΠΌΠ΅ΡΡ ΠΏΡΠΈΠΌΠ΅Π½Π΅Π½ΠΈΡ
Π‘Π΄Π²ΠΈΠ³ΠΈ Π²Π»Π΅Π²ΠΎ ΠΈ Π²ΠΏΡΠ°Π²ΠΎ ΡΠΈΡΠΎΠΊΠΎ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΡΡΡΡ Π² ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠΈΡΠΎΠ²Π°Π½ΠΈΠΈ Π΄Π»Ρ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΡ ΡΠ°Π·Π»ΠΈΡΠ½ΡΡ Π·Π°Π΄Π°Ρ. ΠΠΎΡ Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΎ ΠΏΡΠΈΠΌΠ΅ΡΠΎΠ², ΠΊΠ°ΠΊ ΠΈΡ ΠΌΠΎΠΆΠ½ΠΎ ΠΏΡΠΈΠΌΠ΅Π½ΠΈΡΡ:
Π£ΠΌΠ½ΠΎΠΆΠ΅Π½ΠΈΠ΅ ΠΈ Π΄Π΅Π»Π΅Π½ΠΈΠ΅ Π½Π° ΡΡΠ΅ΠΏΠ΅Π½Ρ Π΄Π²ΠΎΠΉΠΊΠΈ
Π‘Π΄Π²ΠΈΠ³ Π²Π»Π΅Π²ΠΎ Π½Π° n ΠΏΠΎΠ·ΠΈΡΠΈΠΉ ΡΠΊΠ²ΠΈΠ²Π°Π»Π΅Π½ΡΠ΅Π½ ΡΠΌΠ½ΠΎΠΆΠ΅Π½ΠΈΡ ΡΠΈΡΠ»Π° Π½Π° 2 Π² ΡΡΠ΅ΠΏΠ΅Π½ΠΈ n. ΠΠ°ΠΏΡΠΈΠΌΠ΅Ρ:
number = 5
shifted_number = number << 3 # ΡΠΊΠ²ΠΈΠ²Π°Π»Π΅Π½ΡΠ½ΠΎ 5 * (2 ** 3)
print(shifted_number) # ΠΡΠ²ΠΎΠ΄ΠΈΡ 40
Π ΡΡΠΎΠΌ ΠΏΡΠΈΠΌΠ΅ΡΠ΅ ΠΌΡ ΡΠΌΠ½ΠΎΠΆΠ°Π΅ΠΌ ΡΠΈΡΠ»ΠΎ 5 Π½Π° 2 Π² ΡΡΠ΅ΠΏΠ΅Π½ΠΈ 3, ΡΡΠΎ Π΄Π°Π΅Ρ Π½Π°ΠΌ ΡΠ΅Π·ΡΠ»ΡΡΠ°Ρ 40.
Π‘Π΄Π²ΠΈΠ³ Π²ΠΏΡΠ°Π²ΠΎ Π½Π° n ΠΏΠΎΠ·ΠΈΡΠΈΠΉ ΡΠΊΠ²ΠΈΠ²Π°Π»Π΅Π½ΡΠ΅Π½ Π΄Π΅Π»Π΅Π½ΠΈΡ ΡΠΈΡΠ»Π° Π½Π° 2 Π² ΡΡΠ΅ΠΏΠ΅Π½ΠΈ n. ΠΠ°ΠΏΡΠΈΠΌΠ΅Ρ:
number = 40
shifted_number = number >> 3 # ΡΠΊΠ²ΠΈΠ²Π°Π»Π΅Π½ΡΠ½ΠΎ 40 // (2 ** 3)
print(shifted_number) # ΠΡΠ²ΠΎΠ΄ΠΈΡ 5
Π ΡΡΠΎΠΌ ΠΏΡΠΈΠΌΠ΅ΡΠ΅ ΠΌΡ Π΄Π΅Π»ΠΈΠΌ ΡΠΈΡΠ»ΠΎ 40 Π½Π° 2 Π² ΡΡΠ΅ΠΏΠ΅Π½ΠΈ 3, ΡΡΠΎ Π΄Π°Π΅Ρ Π½Π°ΠΌ ΡΠ΅Π·ΡΠ»ΡΡΠ°Ρ 5.
ΠΠ·Π²Π»Π΅ΡΠ΅Π½ΠΈΠ΅ ΠΈΠ½ΡΠΎΡΠΌΠ°ΡΠΈΠΈ ΠΈΠ· Π±ΠΈΡΠΎΠ²ΠΎΠ³ΠΎ ΠΏΡΠ΅Π΄ΡΡΠ°Π²Π»Π΅Π½ΠΈΡ
Π‘Π΄Π²ΠΈΠ³ΠΈ ΡΠ°ΠΊΠΆΠ΅ ΠΌΠΎΠ³ΡΡ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡΡΡ Π΄Π»Ρ ΠΈΠ·Π²Π»Π΅ΡΠ΅Π½ΠΈΡ ΠΊΠΎΠ½ΠΊΡΠ΅ΡΠ½ΡΡ Π±ΠΈΡΠΎΠ² ΠΈΠ· ΡΠΈΡΠ»Π°. ΠΠ°ΠΏΡΠΈΠΌΠ΅Ρ, ΡΡΠΎΠ±Ρ ΠΏΠΎΠ»ΡΡΠΈΡΡ Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅ 3-Π³ΠΎ Π±ΠΈΡΠ° ΡΠΈΡΠ»Π° 10, ΠΌΠΎΠΆΠ½ΠΎ Π²ΡΠΏΠΎΠ»Π½ΠΈΡΡ ΡΠ΄Π²ΠΈΠ³ Π²ΠΏΡΠ°Π²ΠΎ Π½Π° 3 ΠΏΠΎΠ·ΠΈΡΠΈΠΈ ΠΈ ΠΏΡΠΈΠΌΠ΅Π½ΠΈΡΡ ΠΏΠΎΠ±ΠΈΡΠΎΠ²ΠΎΠ΅ "Π" Ρ 1:
number = 10
third_bit = (number >> 3) & 1
print(third_bit) # ΠΡΠ²ΠΎΠ΄ΠΈΡ 1
Π ΡΡΠΎΠΌ ΠΏΡΠΈΠΌΠ΅ΡΠ΅ ΠΌΡ ΠΏΠΎΠ»ΡΡΠ°Π΅ΠΌ ΡΠΈΡΠ»ΠΎ 10, ΡΠ΄Π²ΠΈΠ³Π°Π΅ΠΌ Π΅Π³ΠΎ Π²ΠΏΡΠ°Π²ΠΎ Π½Π° 3 ΠΏΠΎΠ·ΠΈΡΠΈΠΈ, ΠΏΠΎΠ»ΡΡΠ°Ρ ΡΠΈΡΠ»ΠΎ 1. ΠΠ°ΡΠ΅ΠΌ ΠΌΡ ΠΏΡΠΈΠΌΠ΅Π½ΡΠ΅ΠΌ ΠΏΠΎΠ±ΠΈΡΠΎΠ²ΠΎΠ΅ "Π" Ρ 1, ΡΡΠΎΠ±Ρ ΠΏΠΎΠ»ΡΡΠΈΡΡ Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅ ΡΡΠ΅ΡΡΠ΅Π³ΠΎ Π±ΠΈΡΠ°, ΠΊΠΎΡΠΎΡΠΎΠ΅ ΡΠ²Π»ΡΠ΅ΡΡΡ 1.
ΠΠ°ΠΊΠ»ΡΡΠ΅Π½ΠΈΠ΅
Π‘Π΄Π²ΠΈΠ³ΠΈ Π²Π»Π΅Π²ΠΎ ΠΈ Π²ΠΏΡΠ°Π²ΠΎ ΠΏΡΠ΅Π΄ΡΡΠ°Π²Π»ΡΡΡ ΠΌΠΎΡΠ½ΡΠ΅ ΠΈΠ½ΡΡΡΡΠΌΠ΅Π½ΡΡ Π΄Π»Ρ ΡΠ°Π±ΠΎΡΡ Ρ Π±ΠΈΡΠΎΠ²ΡΠΌΠΈ ΠΎΠΏΠ΅ΡΠ°ΡΠΈΡΠΌΠΈ Π² Python. ΠΠ½ΠΈ ΠΌΠΎΠ³ΡΡ Π±ΡΡΡ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½Ρ Π΄Π»Ρ ΡΠ΅ΡΠ΅Π½ΠΈΡ ΡΠ°Π·Π»ΠΈΡΠ½ΡΡ Π·Π°Π΄Π°Ρ, Π²ΠΊΠ»ΡΡΠ°Ρ ΡΠΌΠ½ΠΎΠΆΠ΅Π½ΠΈΠ΅ ΠΈ Π΄Π΅Π»Π΅Π½ΠΈΠ΅ Π½Π° ΡΡΠ΅ΠΏΠ΅Π½Ρ Π΄Π²ΠΎΠΉΠΊΠΈ, Π° ΡΠ°ΠΊΠΆΠ΅ ΠΈΠ·Π²Π»Π΅ΡΠ΅Π½ΠΈΠ΅ ΠΈΠ½ΡΠΎΡΠΌΠ°ΡΠΈΠΈ ΠΈΠ· Π±ΠΈΡΠΎΠ²ΠΎΠ³ΠΎ ΠΏΡΠ΅Π΄ΡΡΠ°Π²Π»Π΅Π½ΠΈΡ ΡΠΈΡΠ»Π°. ΠΠ·Π½Π°ΠΊΠΎΠΌΡΡΡ Ρ ΡΡΠΈΠΌΠΈ ΠΎΠΏΠ΅ΡΠ°ΡΠΈΡΠΌΠΈ ΠΈ ΡΠΊΡΠΏΠ΅ΡΠΈΠΌΠ΅Π½ΡΠΈΡΡΠΉ Ρ Π½ΠΈΠΌΠΈ, ΡΡΠΎΠ±Ρ ΡΠ³Π»ΡΠ±ΠΈΡΡ ΡΠ²ΠΎΠΈ Π·Π½Π°Π½ΠΈΡ Π² ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠΈΡΠΎΠ²Π°Π½ΠΈΠΈ!