from random import randint
# for _ in range(10):
# a, b = randint(0, 100), randint(0, 100)
# x = a & b
# y = ~((~a) | (~b))
# print(x, y)
def union(a, b):
x = 0
for y in range(a, b + 1):
x |= y
return x
def inter(a, b):
x = a
for y in range(a + 1, b + 1):
x &= y
return x
def union(a, b):
r = 0
m = b.bit_length()
for i in range(m + 1):
x = a | (1 << i)
y = b | (1 << i)
if a <= x <= b or a <= y <= b:
r |= (1 << i)
n = a.bit_length()
for i in range(n, m + 1):
x = 1 << i
if a <= x <= b:
r |= (1 << i)
return r
def _inter(a, b):
return ~(union(~b, ~a))
for _ in range(500):
a = randint(0, 10000)
b = randint(a, 10000)
i = inter(a, b)
j = _inter(a, b)
if i != j:
print(a, b, list(map(bin, [a, b, i, j])))
To embed this project on your website, copy the following code and paste it into your website's HTML: