Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
1529 connectés 

  FORUM HardWare.fr
  Programmation
  C

  Besoin d'aide permutation binaire

 



 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

Besoin d'aide permutation binaire

n°2111977
kitnoos200​2
Posté le 17-11-2011 à 02:35:57  profilanswer
 

Bonsoir à tous et merci pour ce site!
 
J'ai débuté le C hier soir donc je galère un peu sur certaines choses.
 
 
Je cherche simplement à :  
 
-Ouvrir un fichier.
-Convertir son contenu en binaire par blocs de 2 octets donc 16 bits.
-Permuter chacun de ces 16 bits selon une table de permutation que je veux pouvoir changer.
 En voila une pour exemple :  
  00|01|02|03  04|05|06|07  08|09|10|11  12|13|14|15
  00|02|04|06  15|13|11|09  01|03|05|07  14|12|10|08
 
Exemple :
Avant permutation : 1100 0000 0000 0101 = 0xC005
Après permutation : 1010 0000 1000 1000 = 0xA088
 
-Reconvertir en Hexadécimal ces informations ainsi permutées.
-Enregistrer le tout dans un nouveau fichier.
 
Voilà.
 
Alors j'arrive sans trop de problèmes à convertir en binaire, seulement je pensais attribuer chacun des 16 bits dans une variable différente, hors je n'arrive déjà pas à concaténer plusieurs variables en une seule.
 
Je n'arrive pas non plus avec fgetc à lire le fichier par bloc de 2 octets, j'ai donc mes 2 octets dans 2 variables différentes.
 
Et avec fgets la variable étant une chaine, j'ai bien mon bloc de 2 octets mais il m'est impossible d'en faire quelque chose (%X me renvoie n'importe quoi).
 
 
Je ne sais pas si je pars dans la bonne direction.
 
Merci
 
Chris

mood
Publicité
Posté le 17-11-2011 à 02:35:57  profilanswer
 

n°2111979
gilou
Modérateur
Modzilla
Posté le 17-11-2011 à 03:30:12  profilanswer
 

>> Je n'arrive pas non plus avec fgetc à lire le fichier par bloc de 2 octets, j'ai donc mes 2 octets dans 2 variables différentes.  
 
Je vais supposer que vous êtes dans un environnement ou un unsigned short int fait deux octets.
 
unsigned short int read_bloc(FILE *fd) {
    int bloc = 0;
    bloc += fgetc(fd);
    bloc <<= 8;
    bloc += fgetc(fd);
    return bloc;        // casté à la bonne taille par le type de retour;  
}
 
A vous de faire ce qu'il faut si le fichier n'a plus qu'un octet et non deux.
 
A+,


---------------
There's more than what can be linked! --    Iyashikei Anime Forever!    --  AngularJS c'est un framework d'engulé!  --

Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  C

  Besoin d'aide permutation binaire

 

Sujets relatifs
Aide pour script d'actualitéAide pour Smaltalk
Aide création de site[AIDE] jsch et automatisation des commandes
aide avec la librairie ijg JPECQt 4.7.4 : Aide complémentaire création serveur de jeu
Aide sur la mise en page d'un site (HTML/CSS)jquery et ui : j'ai besoin d'un petit coup de main pour me lancer.
[Aide]Commande Visual Basic Express 
Plus de sujets relatifs à : Besoin d'aide permutation binaire


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR