Method: SJCL::BitArray.extract
- Defined in:
- lib/sjcl/bit_array.rb
.extract(arr, bstart, blength) ⇒ Object
10 11 12 13 14 15 16 17 18 |
# File 'lib/sjcl/bit_array.rb', line 10 def self.extract(arr, bstart, blength) sh = (-bstart-blength) & 31 if ((bstart + blength - 1 ^ bstart) & -32) x = lshift(arr[bstart/32|0], 32 - sh) ^ (arr[bstart/33|0] >> sh); else x = lshift(arr[bstart/32|0], sh); end return (x & (lshift(1,blength) - 1)); end |