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

  FORUM HardWare.fr
  Programmation
  C++

  Convertir int en 16bits

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

Convertir int en 16bits

n°2235689
rattlesnak​e
Posté le 15-08-2014 à 16:57:54  profilanswer
 

Bonjour,
 
Je voudrais savoir s'il y a un moyen simple de convertir un int en un nombre de 16bits en C++...
 
Merci d'avance !

mood
Publicité
Posté le 15-08-2014 à 16:57:54  profilanswer
 

n°2235707
Farian
Posté le 15-08-2014 à 23:46:09  profilanswer
 

Bonjour !
 
Je pense que vous exprimez mal votre problème (ou que ce n'est pas tout à fait clair dans votre formulation) ...
 
Sinon  

Code :
  1. int integer=3;
  2. uint16_t nombre16bits = reinterpret_cast<uint16_t>(integer);


 
Mais je suis certain que ce n'est pas du tout ce que vous avez en tête, mais comme je n'arrive pas à cerner précisément ce que vous avez en tête, je ne peux guère vous proposer mieux :)

n°2235708
Terminapor
I'll see you rise.
Posté le 15-08-2014 à 23:54:45  profilanswer
 

Dans ce cas, c'est pas plutôt un static_cast qu'il faut ?


---------------
Perhaps you don't deserve to breathe
n°2235771
rattlesnak​e
Posté le 18-08-2014 à 10:46:23  profilanswer
 

Bonjour,
 
En effet, ma question n'est pas assez clairement formulée, mais je me rends compte que moi même j'avais mal saisi ce que l'on me demandait...
Merci pour vos réponses,
Au fait, je pensais que l'on me demandait seulement de convertir les int en chaines de caractères de 16bits et de les stocker dans un fichier, mais après explication, ils veulent que j'écrive directement dans un fichier binaire sous format 16bits, sachant que la lecture du fichier de base est en ASCII.
Les fichiers de mesures ressemblent à ça :
12 13.2 158 10
11.1 15 10.1 15
...
J'extrais chaque colonne (correspondant à une donnée en particulier), et l'écris dans un fichier séparé, mais on me demande de ne pas l'écrire telle quelle, mais de créer des fichiers binaires où elles seront écrites en 16bits...
Quelqu'un peut-il m'éclairer?
 
Ci-dessous le code à l'état actuel :

Code :
  1. #include <iostream>
  2. #include <fstream>
  3. #include <string>
  4. int main()
  5. {
  6. using namespace std;
  7. ifstream liste("liste_de_fichiers.txt", ios::in);
  8. if(liste)
  9. {
  10.  string lisligne;
  11.  string filename0, filename1,filename2,filename3,filename4;
  12.  string ligne;
  13.  double doublea,doubleb,doublec,doubled,doublee,doublef;
  14.  double double1, double2, double3, double4, double5, double6;
  15.  while(getline(liste, lisligne))
  16.  {
  17.    liste >> filename0; //lecture du nom de fichier dans un fichier "liste de fichiers"
  18.    filename1 = "/home/rs/Desktop/eclats/" + filename0 + "_1"; //création du nom du fichier où sera retranscrite la colonne 1
  19.    filename2 = "/home/rs/Desktop/eclats/" + filename0 + "_2"; //colonne 2
  20.    filename3 = "/home/rs/Desktop/eclats/" + filename0 + "_3"; // 3
  21.    filename4 = "/home/rs/Desktop/eclats/" + filename0 + "_4"; // 4
  22.    filename0 = "/home/rs/Desktop/données_modèles/données_modèles/2011/" + filename0; //Nom du fichier de base (avec toutes les colonnes)
  23.    ifstream fichier0(filename0.c_str(), ios::in); //fichier lecture
  24.    ofstream fichier1(filename1.c_str(), ios::out); // ecritures
  25.    ofstream fichier2(filename2.c_str(), ios::out);
  26.    ofstream fichier3(filename3.c_str(), ios::out);
  27.    ofstream fichier4(filename4.c_str(), ios::out);
  28.    if(fichier0 && fichier1 && fichier2 && fichier3 && fichier4)
  29.     {
  30.       fichier0 >> doublea >> doubleb >> doublec >> doubled >> doublee >> doublef; //lecture des 6 colonnes
  31.       //retranscription d'une colonne par fichier        
  32.       fichier1 << doublec*100;
  33.       fichier2 << doubled*100;
  34.       fichier3 << doublee*100;
  35.       fichier4 << doublef*100;
  36.      while(getline(fichier0, ligne))  // tant que l'on peut mettre la ligne dans "contenu"
  37.      {
  38.         fichier0 >> double1 >> double2 >> double3 >> double4 >> double5 >> double6;
  39.         fichier1 << double3*100;
  40.         fichier2 << double4*100;
  41.         fichier3 << double5*100;
  42.         fichier4 << double6*100;
  43.      }
  44.      //fichiers traités
  45.      cout<<filename0<<endl;
  46.      cout<<filename1<<endl;
  47.      cout<<filename2<<endl;
  48.      cout<<filename3<<endl;
  49.      cout<<filename4<<endl;
  50.     }
  51.     else
  52.      cerr<<"Impossible d'ouvrir le fichier!1"<<endl;
  53.  }
  54.  liste.close();
  55. }
  56. else
  57.  cerr<<"Impossible d'ouvrir le fichier!"<<endl;
  58. return 0;
  59. }


Merci d'avance !

n°2235834
gilou
Modérateur
Modzilla
Posté le 19-08-2014 à 10:43:07  profilanswer
 

En 16 bits big endian, ou little endian?
Un élément de réponse ici: http://www.cplusplus.com/articles/DzywvCM9/
 
Notes que si C++ ne t'es pas imposé, ce que tu veux faire, c'est juste quelques lignes de Perl (ou de Python, probablement).
 
A+,


---------------
There's more than what can be linked! --    Iyashikei Anime Forever!    --  AngularJS c'est un framework d'engulé!  --
n°2237330
rattlesnak​e
Posté le 09-09-2014 à 12:46:15  profilanswer
 

Merci pour ta réponse, et désolé de ne plus avoir donné de nouvelles, j'étais en déplacement.
Au fait la consigne n'était peut être pas assez claire, et ce qu'on voulait de moi était simplement de stocker les nombres sous forme binaire, ce que j'ai fais grace à la fonction write !

n°2237561
gilou
Modérateur
Modzilla
Posté le 10-09-2014 à 10:47:51  profilanswer
 

Il y a par exemple la technique donnée en première réponse ici:
http://stackoverflow.com/questions [...] -file-io-c
A+,


Message édité par gilou le 10-09-2014 à 10:49:16

---------------
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++

  Convertir int en 16bits

 

Sujets relatifs
Convertir Applet en JFrameConvertir Applet en JFrame
Convertir une base Access 2.0 en version récente[Excel] Données / convertir aide
convertir un fichier image raw en format lisibleConvertir un Varchar en int avec le SQL
Convertir application 16 bits en 32 bits : possible ?Convertir un élement XML vers JSON
[DELPHI] convertir une chaine hexadecimale en suite de bits ...[VB] Convertir une couleur Hexa en Couleur Long 16bits
Plus de sujets relatifs à : Convertir int en 16bits


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