In [1]:
import numpy as np
import matplotlib.pyplot as plt
In [2]:
# bit indices
bits = np.arange(8)

# values for each bit in a binary system
bit_values_bin = 1 << bits

# all possible combinations of bits on/off
bit_combos = (np.arange(256)[:, np.newaxis] & bit_values_bin) >> bits
In [6]:
# all possible values in a binary system
possible_values = np.sort(np.dot(bit_combos, bit_values_bin))
plt.plot(possible_values)
Out[6]:
[<matplotlib.lines.Line2D at 0x7fc7237fe748>]
In [4]:
# all values with modified weights
bit_values_new = bit_values_bin ** 2
possible_values = np.sort(np.dot(bit_combos, bit_values_new))
plt.plot(possible_values)
Out[4]:
[<matplotlib.lines.Line2D at 0x7fc7238eb0f0>]
In [7]:
bit_values_new = bit_values_bin ** 0.5
possible_values = np.sort(np.dot(bit_combos, bit_values_new))
plt.plot(possible_values)
Out[7]:
[<matplotlib.lines.Line2D at 0x7fc723763c18>]
In [8]:
bit_values_new = np.log(bit_values_bin)
possible_values = np.sort(np.dot(bit_combos, bit_values_new))
plt.plot(possible_values)
Out[8]:
[<matplotlib.lines.Line2D at 0x7fc72374d5f8>]
In [ ]: