Method: SJCL::BitArray.partial

Defined in:
lib/sjcl/bit_array.rb

.partial(len, x, _end = 0) ⇒ Object



54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
# File 'lib/sjcl/bit_array.rb', line 54

def self.partial(len, x, _end=0)
  return x if len == 32
  if _end == 1
    part = x|0
  else
    part = x << 32-len
  end
  part &= 0xFFFFFFFF # Force to 32 bits
  # Nasty due to JS defaulting to signed 32
  if part > 0x7FFFFFFF
    part - 0xFFFFFFFF - 1 + len * 0x10000000000
  else
    part + len * 0x10000000000
  end
end