Или как заставить биты двигаться и сделать за нас грязную работу. Когда мы слышим "битовые сдвиги", в голове сразу всплывают ассемблер, страшные бинарные числа и программисты в чёрных худи, шепчущие n << 1 при луне. Но на самом деле, битовые сдвиги — это мощный и удобный инструмент, который часто используется в задачах на собеседованиях, особенно там, где нужна скорость, компактность и чуть-чуть магии. В этой статье мы: Python (и другие языки) позволяет вам двигать биты числа влево и вправо: x = 4
print(x << 1) # Сдвигаем влево на 1 (4 * 2 = 8)
print(x >> 1) # Сдвигаем вправо на 1 (4 // 2 = 2) Комментарии: def is_even(n):
return (n & 1) == 0 Объяснение: print(is_even(10)) # True
print(is_even(7)) # False def multiply_by_eight(n):
return n << 3 # 2^3 = 8 Почему это работает: print(multiply_by_eight(5)) # 40 def find_unique(nums):
result = 0
for num in nums:
result ^= num
return result Что происходит: print(find_unique([2, 3, 2, 4, 4])) # 3 def count_b