Bonjour à tous,
J'ai un fichier de mesures stockées sous une forme de LSB\tMSB (ou l'inverse, c'est à moi de trouver ), ces bytes sont en décimal ou en hexadécimal.
Par ex
245 255
242 255
Je cherche à les convertir en int
Pour le fichier l'exemple ci dessus, je devrais trouver
-11
-14
J'ai une formule, (à laquelle je ne comprends rien) qui marche et qui fait
1 2 3 4
|
int d0=atoi(tokens[0].c_str());;
int d1=atoi(tokens[1].c_str());;
int mes=d1*256+d0-65536*(d1>>7); |
où tokens est un tableau de std::string.
Mais je voudrais faire la manière plus élégante, du style
1 2
|
int mesTer=(d1<<8)|(d0); |
mais je n'y arrive pas, j'ai essayé des
unsigned short numberd0 = (unsigned short) strtoul(tokens[0].c_str(), NULL, 10);
et plein de combinaisons du genre mais sans succès.
Est-ce que quelqu'un pourrait m'aider ?
Merci
Partager