+ 2
Right and Left shift operators
Who can help with explanation? x=5 print (x>>2<<x) output:32
7 Respostas
+ 5
a << b = a // 2 ** b
a >> b = a * 2 ** b
+ 4
x = 5
so, x is 0000 0101
we shift it right by 2 and it becomes:
0000 0001
then we shift that left by 5
0010 0000
which is 32
+ 4
Çalıştığını söylemek için yazdım
İstersen açıklayarak da yazarım
+ 3
#tardigrade
from random import randrange as r, choice as c #randrange(a, b) a ve b arasından (b dahil değil) bir sayı seçer, choice(seq) verilen liste gibi şeyden rastgele bir şey seçer
rn = lambda: str(r(0, 1000))#0 - 999 arasından (ikisi de dahil) bir sayı seçip yazı haline getiren bir anonim fonksiyon
for x in range(10000):
a, b = rn(), rn() #2 rastgele sayı
op = c([('>>', '//'), ('<<', '*')]) #right ya da left shift' ten birini seçer
assert eval(a + op[0]+ b) == eval(a + op[1] + '2**' +b),(a, op, b) # (a << b != a * 2 ** b) ya da (a >> b != a // 2 ** b) olursa a, b ve yapılan işlemi AssertionError yaparak gösterir
+ 2
Mert bey bu harika bir kisayol. Tesekkur ederim. Tüm rakamlar için gecerlidir sanirim.
+ 2
Mert abi sanirim bu yazdiginiz yukaridaki soruma cevapdir. Malesef ben function mevzusuna hala yaklasamamisam. Hazirda for while mevzusu uzerinde calisiyorum. Yine de tesekkur, incelerim bunu da
+ 2
vakit olursa yazın, ben tam anlamasam da okuyanlar üçün faydalı olur belki de. tesekkur