bytesToInt32 static method

int bytesToInt32(
  1. Uint8List bytes, {
  2. ByteOrder byteOrder = ByteOrder.bigEndian,
})

Convert bytes to signed 32-bit integer (Int32).

Parameters:

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);
  }
}