import 'dart:typed_data'; String binaryDump(Uint8List data) { StringBuffer buffer = StringBuffer(); for (int i = 0; i < data.length; i += 16) { // Address buffer.write('0x${i.toRadixString(16).padLeft(4, '0').toUpperCase()} (${i.toString().padLeft(4)}) | '); // Hex bytes for (int j = 0; j < 16; j++) { if (i + j < data.length) { buffer.write('${data[i + j].toRadixString(16).padLeft(2, '0').toUpperCase()} '); } else { buffer.write(' '); } } buffer.write(' | '); // Integer representation for (int j = 0; j < 16; j++) { if (i + j < data.length) { buffer.write('${data[i + j].toString().padLeft(3)} '); } else { buffer.write(' '); } } buffer.write(' | '); // ASCII representation for (int j = 0; j < 16; j++) { if (i + j < data.length) { int byte = data[i + j]; if (byte >= 32 && byte <= 126) { buffer.write(String.fromCharCode(byte)); } else { buffer.write('.'); } } } buffer.write(' | '); if (i + 16 < data.length) buffer.writeln(); } return buffer.toString(); }