2017-06-15 11 views
0

y & 3は正確に何を行い、このif..if y & 3..elseステートメントはどのように機能しますか?誰でも説明できますか? https://www.hackerrank.com/challenges/day-of-the-programmer/leaderboard&OperatorでのPythonプログラムの使用

y = int(input()) 
if y < 1918: 
    ftext = "13.09.{}" if y & 3 else "12.09.{}" 
elif y > 1918: 
    ftext = "13.09.{}" if (y & 3) or (y % 400 and not y % 100) else "12.09.{}" 
else: 
    ftext = "26.09.{}" 
print(y & 3) 
print(ftext.format(y)) 

答えて

0

&オペレータから取ったビット単位のANDオペランドの間を行います。したがって Y & 3マスク3

のビットをYビットY = 11110111と3 = 00000011 y&3は00000011

"13.09.{}" if y & 3 else "12.09.{}"

チェックにYの最後の2ビットがあるかどうかの条件を評価する場合両方ともゼロではない。 yの最後の2ビットがゼロの場合、条件は偽になります。

+0

これは、4で割り切れるかどうかを確認しているかどうかですか? – user123155

関連する問題