Compression de données

pastek14001

Nouveau membre
Bonjour,

j'ai un tp à réalisé sur la compression et décompression de données.

pour commencer on nous demandes de réaliser une fonction DUMP qui permet d'afficher en héxa le contenu d'un tableau d'octets. On écrit 16 octets par ligne et on fait commencer chaque ligne par le numéros du premier octet de la ligne en décimal. C'est donc un Dump d'un tableau d'octets

et comme prototype, il nous donne :

void dump(unsigned char t[], int nb);
mon problème est que je ne comprends pas la fonction dump et ni l’algorithme de la fonction

je suis avec le logiciel codeblocks et ne doit pas utiliser d'include
 

CRicky

Helper
Si dans ton tableau, tu as "Bonjour comment ça va ?", tu dois afficher:
Code:
00000000 42 6F 6E 6A 6F 75 72 20 63 6F 6D 6D 65 6E 74 20
00000010 E7 61 20 76 61 20 3F
car 'B' == 0x42, 'o' == 0x6F, etc.
Et pour l'adressage 0x10 = 16
 

CRicky

Helper
Une réponse en python:
Python:
dumpLine = lambda x,addr: '%08X %s' % (addr, ' '.join(['%02X' % c for c in x]))
dump = lambda x:'\n'.join([dumpLine(x[i<<4:i+1<<4], i<<4) for i in range((len(x)-1>>4)+1)])

print(dump(b'Bonjour comment \xe7a va ?'))
 

chonos

Helper
CRicky

Je ne connais pas le Python ( mais tu m'apprend quelque chose cool)
je ne pensais pas a ce langage pour de la compression,
je pensais plus en c ou assembleur

a+
Merci
 

CRicky

Helper
La compression n'est que l'application d'une fonction mathématique et c'est sa complexité qui détermine le temps de calcul (dépendante de la quantité de données à traiter). Si ce temps de calcul est augmenté linéairement par le choix du langage, ça n'est finalement pas très important.
Je pense qu'il vaut mieux utiliser un langage simple (le python étant le plus simple) pour créer plus facilement l'algorithme (il peut toujours être porté dans un autre langage après ;) )
 
Vous devez vous inscrire ou vous connecter pour répondre ici.
Derniers messages publiés
Statistiques globales
Discussions
730 126
Messages
6 717 807
Membres
1 586 365
Dernier membre
matiOs1
Partager cette page
Haut