In [1]:
import numpy as np
import bits

%load_ext autoreload
%autoreload 2

In [2]:
x = 5341
print('x  = '+format(x,'#018b'))
rx = bits.reverseBits(x)
print('rx = '+format(rx,'#018b'))
xp = bits.reverseBits(rx)
print(xp == x)


x  = 0b0001010011011101
rx = 0b1011101100101000
True

In [3]:
print('numOf1s(x) = '+str(bits.numOf1s(x)))
print('numOf1s(rx) = '+str(bits.numOf1s(rx)))


numOf1s(x) = 8
numOf1s(rx) = 8

In [4]:
x = 4041
y = 300
#print('x = '+format(x,'#018b'))
#print('y = '+format(y,'#018b'))
print('addWithLogic(x,y) = '+str(bits.addWithLogic(x,y)))
print(bits.addWithLogic(x,y) == x+y)


addWithLogic(x,y) = 4341
True

In [5]:
x = 0x0000F000 # 0x00000F00 0x80000000 0x0000F000 0x00000001
print('ffs(x) = %d' % bits.ffs(x))
print('ffs_table(x) = %d' % bits.ffs_table(x))
print('ctz(x) = %d' % bits.ctz(x))
print('ctz_bs(x) = %d' % bits.ctz_bs(x))
print('=========')
print('clz(x) = %d' % bits.clz(x))


ffs(x) = 12
ffs_table(x) = 12
ctz(x) = 12
ctz_bs(x) = 12
=========
clz(x) = 16

In [ ]: