toBytes static method
Converts an integer to a byte list with the specified length and endianness.
Implementation
static List<int> toBytes(
int val, {
int? length,
Endian byteOrder = Endian.big,
}) {
length ??= bitlengthInBytes(val);
assert(length <= 8);
if (length > 4) {
final int lowerPart = val & BinaryOps.mask32;
final int upperPart = (val >> 32) & BinaryOps.mask32;
final bytes = [
...toBytes(upperPart, length: length - 4),
...toBytes(lowerPart, length: 4),
];
if (byteOrder == Endian.little) {
return bytes.reversed.toList();
}
return bytes;
}
final List<int> byteList = List<int>.filled(length, 0);
for (var i = 0; i < length; i++) {
byteList[length - i - 1] = val & BinaryOps.mask8;
val = val >> 8;
}
if (byteOrder == Endian.little) {
return byteList.reversed.toList();
}
return byteList;
}