PROJET Réduire une séquence binaire de 1 bit?

Fermé
librequetucrois - 3 nov. 2011 à 04:03
nicocorico Messages postés 799 Date d'inscription dimanche 19 juin 2011 Statut Membre Dernière intervention 3 juillet 2018 - 3 nov. 2011 à 18:37
Bonjour et merci par avance s'il vous plaît de participer (au moins ça c'est fait),
.
Projet libre source (tous le monde peut l'améliorer, personne ne peut le breveter).
.
Alors voila, c'est pas facile à décrire et je ne suis pas sûr de la piste à suivre :
.
Dans le vif : à partir d'une chaîne binaire d'une longueur minimum à définir, j'aimerais que la longueur de cette chaîne soit une sorte de calque de calcul qui *mangerait* les bits d'un fichier quelconque, un seul à la fois entre chaque calcul.
.
Pour essayer de donner un exemple, je voudrais prendre un fichier dont on va lire uniquement le contenu en binaire sans se préoccuper de la signification des 1 et 0.
.
On *pose* virtuellement le calque de calcul d'une certaine longueur disons à la fin du fichier sur les 1 et les 0 pour aller vers le début du fichier.
.
Au départ par exemple, le calque mesure 128 bits, les 128 bits (les 1 et les 0) ont la valeur (1 ou 0) correspondant à l'endroit où l'on pose le calque.
.
C'est là que c'est plus difficile, la fin du fichier sur lequel est le calque est à droite et le début à gauche ; si le calque est sur 128 bit au départ, je voudrais que le bit tout à droite du calque soit supprimé et compressé dans le calque qui lui-même serait décalé vers la gauche pour incorporer le bit à gauche AVANT la compression.
.
Le problème, ce qui est difficile, c'est de savoir et mettre au point la manière de compresser un seul bit dans une chaîne binaire quelconque. Autrement dit, combien il y a de combinaisons à mettre aux points pour couvrir toutes les possibilités. Il peut y avoir une table externe pour des combinaisons spéciales difficile à coder sans devoir casser tout le reste.
- - - - -
.
Base ...
                 <=[1101110100]
101000011101110101101101110100

Puis -1 à droite et +1 à gauche
                <=[XXXXXXXXXX]
1010000111011101011XXXXXXXXXX

X car la chaîne est modifiée par calcul (le bit à droite est incorporé/compressé dans le calque par calcul après incorporation du bit à gauche afin de maintenir la longueur du calque) ; elle n'est plus identique à la chaîne de départ.

- - - - -
Merci aux experts en algo d'apporter leurs contributions ; idem pour les matheux.
Merci aux développeurs d'outils logiciels de proposer un début de cadre logiciel.
Merci aux ergonomes, dessinateurs et designers d'aider les développeurs.
Un cadre logiciel, un peu comme un vrai logiciel fini, peut aider et motiver.
.
Un bon rédacteur ne serait pas du luxe pour reprendre en mieux ce que je dis.
Merci beaucoup à tous par avance ; je vous laisse développer (positivement).
.
< config >Windows 7 (proprio) / Firefox 3.6.23 (faussement libre)< / config >
A voir également:

3 réponses

nicocorico Messages postés 799 Date d'inscription dimanche 19 juin 2011 Statut Membre Dernière intervention 3 juillet 2018 138
3 nov. 2011 à 17:51
Hum, Je saisis mal : Si les 128 bits sont significatifs, il est impossible de penser inclure l'un d'eux dans les 127 autres en pouvant récupérer cette valeur...
0
arth Messages postés 9374 Date d'inscription mardi 27 septembre 2005 Statut Contributeur Dernière intervention 16 décembre 2016 1 291
3 nov. 2011 à 18:14
Ah moins qu'il travaille avec des bis 0,1 et 2 ;-)
0
nicocorico Messages postés 799 Date d'inscription dimanche 19 juin 2011 Statut Membre Dernière intervention 3 juillet 2018 138
3 nov. 2011 à 18:37
Désolé, je ne vois toujours pas !
Le but final est de faire de la compression, si j'ai bien compris, et je ne vois pas du tout par quel bout tu prends l'objectif final...
0