Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

Traitement binaire vers hexadecimal

12 réponses
Avatar
Zeldus
Bonsoir,

Je dispose d'un fichier "texte" de plusieurs dizaine de Mo composé de 0 et
de 1 généré par une moulinette écrite en C++ pour console Win32. Le but du
fichier est la démonstration du fonctionnement de l'étalement de spectre et
du CDMA (étalement d'un fichier dans un autre à l'aide d'un code de Gold par
exemple), exactement ce qu'on trouve dans le fonctionnement du GPS, l'UMTS
ou le WiFi 802.11a (mode DSS). En gros, on réalise des opérations de XOR bit
par bit à des vitesses différentes entre le fichier et une clé donnée ou un
autre fichier.

La petit programme génère bien un fichier résultant composé de 0 et de 1
conforme au fonctionnement de l'étalement de spectre. Le problème, c'est
qu'il n'est pas possible de travailler sur des octets car le GPS ou le WiFi
font des opérations de XOR sur des bits individuellement et que cela change
tout par rapport à un traitement octet par octet. Comment convertir ce
fichier sorti en un véritable fichier binaire qui puisse s'afficher dans un
éditeur hexadecimal avec non pas un affichage des codes ASCII des "0" et des
"1" mais un regroupement en hexa des bits 8 par 8 en binaire pur ? Cela
permettra de stocker le fichier en divisant la taille par 8, un bit ne sera
plus stockés individiellement par un octet mais par un bit sur le disque
dur. J'ai essayé 3 ou 4 éditeurs hexadécimaux (dont winhex) mais aucun ne
permet cette fonctionnalité. Y a-t-il un moyen d'éviter l'écriture d'une
routine en C++ ? Sinon, quelqu'un a-t-il un lien sur un éventuel exemple de
routine utilisable ?

Je ne sais pas si j'ai été assez clair, c'est assez spécifique comme
opération...

Par avance, merci,

Zeldus

2 réponses

1 2
Avatar
geo cherchetout
Par ailleurs, en supposant que le fichier de 38 ko ( ~ 3 Mbits) soit
uniformément réparti dans un document dont la durée d'écoute est de
l'ordre de 2 heures, le bruit produit dans le pire des cas ne pourrait
avoir une fréquence supérieure à 200 Hz environ. (Signal supposé : 0 1 0
1 0 1 0 1 0 1...)


Et même 20 Hz si 38 ko ne font que 300 kbits. :-) Bien difficile à
entendre !

Avatar
Zeldus
Merci à vous deux car c'est exactement ce qu'il me faut pour optimiser mon
traitement, ça permettra d'utiliser moins de mémoire en pouvant travailler
directement sur les bits composant les octets ! Et l'avantage, c'est que
j'ai en sortie un fichier binaire classique tout à fait exploitable sans
autre moulinette ! Je regarde ce code pour l'incorporer dans le mien et si
certains sont intéressés dans le traitement du signal, je mettrais le mien
ici même (mais surement moins bien optimisé que les pros du forum car je
débute !)

Bonne journée,

Zeldus
1 2