#!/usr/bin/env python3
import sys

if len(sys.argv) < 3:
    print("Usage: swap_endian.py <input> <output> [word_size]")
    sys.exit(1)

input_file = sys.argv[1]
output_file = sys.argv[2]
word_size = int(sys.argv[3]) if len(sys.argv) > 3 else 4  # par défaut 32 bits

with open(input_file, "rb") as f:
    data = f.read()

# Vérifie que la taille est multiple de la taille de mot
if len(data) % word_size != 0:
    print("⚠️  Attention : la taille du fichier n'est pas multiple de la taille de mot")

swapped = bytearray()
for i in range(0, len(data), word_size):
    word = data[i:i+word_size]
    swapped.extend(word[::-1])  # inverse les octets dans chaque mot

with open(output_file, "wb") as f:
    f.write(swapped)
