int_big_and.py 987 B

1234567891011121314151617181920212223242526272829303132333435363738394041
  1. print(0 & (1 << 80))
  2. print(0 & (1 << 80) == 0)
  3. print(bool(0 & (1 << 80)))
  4. a = 0xfffffffffffffffffffffffffffff
  5. print(a & (1 << 80))
  6. print((a & (1 << 80)) >> 80)
  7. print((a & (1 << 80)) >> 80 == 1)
  8. # test negative on rhs
  9. a = 123456789012345678901234567890
  10. print(a & -1)
  11. print(a & -2)
  12. print(a & -2345678901234567890123456789)
  13. print(a & (-a))
  14. print(a & (-a - 1))
  15. print(a & (-a + 1))
  16. # test negative on lhs
  17. a = 123456789012345678901234567890
  18. print(-1 & a)
  19. print(-2 & a)
  20. print(-2345678901234567890123456789 & a)
  21. print((-a) & a)
  22. print((-a) & 0xffffffff)
  23. print((-a) & 0xffffffffffffffffffffffffffffffff)
  24. print((-a) & 2)
  25. print((-(1 << 70)) & 2)
  26. # test negative on lhs and rhs
  27. mpz = 1 << 70
  28. a = 123456789012345678901234567890
  29. print(-1 & (-a))
  30. print(-2 & (-a))
  31. print(-2345678901234567890123456789 & (-a))
  32. print((-a) & (-a))
  33. print((-a) & (-0xffffffff))
  34. print((-a) & (-0xffffffffffffffffffffffffffffffff))
  35. print((-1) & (-0xffffffffffffffffffffffffffffffff))
  36. print((-a) & (-2))
  37. print((-mpz) & (-2))