mirror of
https://github.com/micropython/micropython.git
synced 2026-01-08 05:00:26 +01:00
py: Implement bignum '&' with negatives on lhs and rhs.
Needs proper coverage testing. Doesn't implement -ve & -ve. Addresses issue #611.
This commit is contained in:
@@ -2,7 +2,23 @@ print(0 & (1 << 80))
|
||||
print(0 & (1 << 80) == 0)
|
||||
print(bool(0 & (1 << 80)))
|
||||
|
||||
#a = 0xfffffffffffffffffffffffffffff
|
||||
#print(a & (1 << 80))
|
||||
#print((a & (1 << 80)) >> 80)
|
||||
#print((a & (1 << 80)) >> 80 == 1)
|
||||
a = 0xfffffffffffffffffffffffffffff
|
||||
print(a & (1 << 80))
|
||||
print((a & (1 << 80)) >> 80)
|
||||
print((a & (1 << 80)) >> 80 == 1)
|
||||
|
||||
# test negative on rhs
|
||||
a = 123456789012345678901234567890
|
||||
print(a & -1)
|
||||
print(a & -2)
|
||||
print(a & -2345678901234567890123456789)
|
||||
print(a & (-a))
|
||||
|
||||
# test negative on lhs
|
||||
a = 123456789012345678901234567890
|
||||
print(-1 & a)
|
||||
print(-2 & a)
|
||||
print(-2345678901234567890123456789 & a)
|
||||
print((-a) & a)
|
||||
print((-a) & 0xffffffff)
|
||||
print((-a) & 0xffffffffffffffffffffffffffffffff)
|
||||
|
||||
Reference in New Issue
Block a user