byte2BitSetFromBytes static method

IsoBitSet byte2BitSetFromBytes(
  1. Uint8List bytes,
  2. int offset,
  3. int maxBits
)

Implementation

static IsoBitSet byte2BitSetFromBytes(Uint8List bytes, int offset, int maxBits) {
  final bool b1 = (bytes[offset] & 0x80) == 0x80;
  final bool b65 = bytes.length > offset + 8 && (bytes[offset + 8] & 0x80) == 0x80;
  final int length = maxBits > 128 && b1 && b65
      ? 192
      : maxBits > 64 && b1
      ? 128
      : maxBits < 64
      ? maxBits
      : 64;
  final IsoBitSet bitSet = IsoBitSet();
  for (int i = 0; i < length; i++) {
    if (bytes[offset + (i >> 3)] & (0x80 >> i % 8) > 0) bitSet.set(i + 1);
  }
  return bitSet;
}