πŸ”₯ Как ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ сдвиг Π² ΠΏΠΈΡ‚ΠΎΠ½Π΅: простой Π³ΠΈΠ΄ для Π½Π°Ρ‡ΠΈΠ½Π°ΡŽΡ‰ΠΈΡ… Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠΎΠ² πŸ”₯

Π’ ΠΏΠΈΡ‚ΠΎΠ½Π΅ ΠΌΠΎΠΆΠ½ΠΎ ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ сдвиг с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€Π° 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. Они ΠΌΠΎΠ³ΡƒΡ‚ Π±Ρ‹Ρ‚ΡŒ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Π½Ρ‹ для Ρ€Π΅ΡˆΠ΅Π½ΠΈΡ Ρ€Π°Π·Π»ΠΈΡ‡Π½Ρ‹Ρ… Π·Π°Π΄Π°Ρ‡, Π²ΠΊΠ»ΡŽΡ‡Π°Ρ ΡƒΠΌΠ½ΠΎΠΆΠ΅Π½ΠΈΠ΅ ΠΈ Π΄Π΅Π»Π΅Π½ΠΈΠ΅ Π½Π° ΡΡ‚Π΅ΠΏΠ΅Π½ΡŒ Π΄Π²ΠΎΠΉΠΊΠΈ, Π° Ρ‚Π°ΠΊΠΆΠ΅ ΠΈΠ·Π²Π»Π΅Ρ‡Π΅Π½ΠΈΠ΅ ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΠΈ ΠΈΠ· Π±ΠΈΡ‚ΠΎΠ²ΠΎΠ³ΠΎ прСдставлСния числа. Ознакомься с этими опСрациями ΠΈ экспСримСнтируй с Π½ΠΈΠΌΠΈ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΡƒΠ³Π»ΡƒΠ±ΠΈΡ‚ΡŒ свои знания Π² ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠΈ!

Π’ΠΈΠ΄Π΅ΠΎ ΠΏΠΎ Ρ‚Π΅ΠΌΠ΅

ЦикличСский сдвиг списка. Π―Π·Ρ‹ΠΊ программирования Python

Π‘ΠΈΡ‚ΠΎΠ²Ρ‹Π΅ сдвиги Π² ΠΏΠΈΡ‚ΠΎΠ½Π΅

#64. Π‘ΠΈΡ‚ΠΎΠ²Ρ‹Π΅ ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΈ И, Π˜Π›Π˜, НЕ, XOR. Π‘Π΄Π²ΠΈΠ³ΠΎΠ²Ρ‹Π΅ ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€Ρ‹ | Python для Π½Π°Ρ‡ΠΈΠ½Π°ΡŽΡ‰ΠΈΡ…

ΠŸΠΎΡ…ΠΎΠΆΠΈΠ΅ ΡΡ‚Π°Ρ‚ΡŒΠΈ:

Бколько стоит королСвский ΠΏΠΈΡ‚ΠΎΠ½ Π² России: Ρ†Π΅Π½Ρ‹, ΡΡ‚ΠΎΠΈΠΌΠΎΡΡ‚ΡŒ, Π³Π΄Π΅ ΠΊΡƒΠΏΠΈΡ‚ΡŒ

Как Π΄ΠΎΠ±Π°Π²ΠΈΡ‚ΡŒ ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΡƒ Π² ΠΏΠΈΡ‚ΠΎΠ½: простой шаг Π·Π° шагом руководство

Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ venv Π² Python: ΠŸΠΎΠ΄Ρ€ΠΎΠ±Π½Π°Ρ информация ΠΈ инструкции

πŸ”₯ Как ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ сдвиг Π² ΠΏΠΈΡ‚ΠΎΠ½Π΅: простой Π³ΠΈΠ΄ для Π½Π°Ρ‡ΠΈΠ½Π°ΡŽΡ‰ΠΈΡ… Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠΎΠ² πŸ”₯

Как Π²Ρ‹Π·Π²Π°Ρ‚ΡŒ ΠΎΠ΄Π½Ρƒ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΡŽ Π² Π΄Ρ€ΡƒΠ³ΠΎΠΉ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ Π² Python

🐍 Как ΠΏΡ€Π°Π²ΠΈΠ»ΡŒΠ½ΠΎ ΡΠΊΠ°Ρ‡Π°Ρ‚ΡŒ ΠΏΠΈΡ‚ΠΎΠ½ Π½Π° виндовс 10: ΠΏΠΎΠ΄Ρ€ΠΎΠ±Π½Ρ‹ΠΉ Π³ΠΈΠ΄ для Π½Π°Ρ‡ΠΈΠ½Π°ΡŽΡ‰ΠΈΡ…

Как ΠΏΠΎΠΊΠΈΠ½ΡƒΡ‚ΡŒ Python Π² ΠΊΠΎΠΌΠ°Π½Π΄Π½ΠΎΠΉ строкС Windows: Π»Π΅Π³ΠΊΠΈΠΉ ΠΈ понятный Π³Π°ΠΉΠ΄