bytesToInt32 static method
Convert bytes to signed 32-bit integer (Int32).
Parameters:
bytes: 4 bytes in big-endian formatbyteOrder: Word order (default: ByteOrder.bigEndian)
Returns: Signed 32-bit integer (-2147483648 to 2147483647)
Example:
final bytes = Uint8List.fromList([0x00, 0x00, 0x04, 0xD2]); // 1234
final value = DataConverter.bytesToInt32(bytes); // 1234
Implementation
static int bytesToInt32(Uint8List bytes, {ByteOrder byteOrder = ByteOrder.bigEndian}) {
if (bytes.length < 4) {
throw ArgumentError('Requires at least 4 bytes for Int32');
}
final data = ByteData.sublistView(bytes);
if (byteOrder == ByteOrder.bigEndian) {
return data.getInt32(0, Endian.big);
} else {
// Little endian (swap words)
final high = data.getUint16(2, Endian.big);
final low = data.getUint16(0, Endian.big);
final result = ByteData(4);
result.setUint16(0, high, Endian.big);
result.setUint16(2, low, Endian.big);
return result.getInt32(0, Endian.big);
}
}