I am looking for a operation witch converts my byte array:
mem = b'\x01\x02\xff'
in something like this:
[ [0 0 0 0 0 0 0 1]
[0 0 0 0 0 0 1 0]
[1 1 1 1 1 1 1 1] ]
These are operations that I tried:
import numpy as np
mem = b'\x01\x02\xff' #define my input
mem = np.fromstring(mem, dtype=np.uint8) #first convert to int
#print(mem) give me "[ 1 2 255]" at this piont
mem = np.array(['{0:08b}'.format(mem[b]) for b in mem]) #now convert to bin
data= np.array([list(mem[b]) for b in mem]) #finally convert to single bits
print(data)
This code will crash at line 4.. IndexError: index 255 is out of bounds for axis 0 with size 9
Otherwise, it crash at line 5.. IndexError: too many indices for array
These are my Questions:
Why are the number of spaces different after the conversion from hex to int?
Is that the reason that my next conversion from int to bin failed?
Finally, what is wrong with my list operation?
Thank you for your help! :)
mem[b]should bebin the 2 statements:mem = np.array(...)anddata= np.array(...).