arrays - Efficient bit shuffling of vector of binary numbers -


i have recorded data containing vector of bit-sequences, re-arrange efficiently. 1 value in vector of data this:

bit0, bit1, bit2, ... bit7 

i re-arrange bit-sequence order:

bit0, bit7, bit1, bit6, bit2, bit5, bit3, bit4 

if had 1 value work nicely via:

sum(uint32(bitset(0,1:8,bitget(uint32(x), [1 8 2 7 3 6 4 5])))) 

unfortunately bitset , bitget not capable of handling vectors of bit-sequences. since have large dataset interested in efficient solutions.

any appreciated, thanks!

dec2bin , bin2dec can process vectors, can input numbers @ once , permute matrix:

input=1:23; pattern = [1 8 2 7 3 6 4 5]; bit=dec2bin(input(:),numel(pattern)); if size(bit,2)>numel(pattern)     warning('input numbers large pattern, leading bits cut off') end output=bin2dec(bit(:,pattern)); 

if available, use de2bi , bi2de instead.


Comments

Popular posts from this blog

python - Healpy: From Data to Healpix map -

c - Bitwise operation with (signed) enum value -

xslt - Unnest parent nodes by child node -