bytesToInt function
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;
}