bytesToInt function

int bytesToInt(
  1. List<int> bytes,
  2. Endian endian, {
  3. bool signed = false,
})

Implementation

int bytesToInt(List<int> bytes, Endian endian, {bool signed = false}) {
  if (bytes.isEmpty) {
    return 0;
  }
  final sign = bytes[endian == Endian.little ? bytes.length - 1 : 0]
      .toRadixString(2)
      .padLeft(8, '0')[0];
  final byteList = (endian == Endian.little ? bytes.reversed : bytes).toList();
  var binary =
      byteList.map((byte) => byte.toRadixString(2).padLeft(8, '0')).join();
  if (sign == '1' && signed) {
    binary = (int.parse(flip(binary), radix: 2) + 1)
        .toRadixString(2)
        .padLeft(bytes.length * 8, '0');
  }
  final result = int.parse(binary, radix: 2);
  return sign == '1' && signed ? -result : result;
}