int_big_xor.py 736 B

123456789101112131415161718192021222324252627282930313233343536373839404142
  1. # test + +
  2. print(0 ^ (1 << 80))
  3. print((1 << 80) ^ (1 << 80))
  4. print((1 << 80) ^ 0)
  5. a = 0xfffffffffffffffffffffffffffff
  6. print(a ^ (1 << 100))
  7. print(a ^ (1 << 200))
  8. print(a ^ a == 0)
  9. print(bool(a ^ a))
  10. # test - +
  11. print((-1 << 80) ^ (1 << 80))
  12. print((-1 << 80) ^ 0)
  13. print((-a) ^ (1 << 100))
  14. print((-a) ^ (1 << 200))
  15. print((-a) ^ a == 0)
  16. print(bool((-a) ^ a))
  17. i = -1
  18. print(i ^ 0xffffffffffffffff) # carry overflows to higher digit
  19. # test + -
  20. print(0 ^ (-1 << 80))
  21. print((1 << 80) ^ (-1 << 80))
  22. print(a ^ (-1 << 100))
  23. print(a ^ (-1 << 200))
  24. print(a ^ (-a) == 0)
  25. print(bool(a ^ (-a)))
  26. # test - -
  27. print((-1 << 80) ^ (-1 << 80))
  28. print((-a) ^ (-1 << 100))
  29. print((-a) ^ (-1 << 200))
  30. print((-a) ^ (-a) == 0)
  31. print(bool((-a) ^ (-a)))