Oui, la machine va faire ses décalages de bits directement dans le sens correspondant à son endianess. Par contre inutile d'embrouiller un décalage de 8 bits au fin fond d'une multiplication par...
Type: Messages; Utilisateur: Laurent Gomila
Oui, la machine va faire ses décalages de bits directement dans le sens correspondant à son endianess. Par contre inutile d'embrouiller un décalage de 8 bits au fin fond d'une multiplication par...
std::vector<unsigned char> buffer(size);
fichier.read(reinterpret_cast<char*>(&buffer[0]), size);
C'est expliqué ici :
http://c.developpez.com/faq/cpp/?page=STL#STL_conteneurs_avec_c
...
Ce que voulait dire Jean-Marc, c'est que l'utilisation de décalages de bits et d'additions pour reconstituer un entier rendait cette opération indépendante de l'endianess. Ainsi en procédant de la...
Exact j'avais même pas pensé à ça :koi:
Bon ben finalement tout ça devient très simple :wink:
En fait, la façon dont sont stockés les entiers dans le fichier est figée (et devrait être documentée normalement), c'est par contre bien le système qui va lire ces entiers qui ne vas pas avoir le...
Ok, j'explique :)
Le but est de récupérer les octets individuellement, puisqu'on ne sait pas dans quel ordre le système les veut. Donc, dans un tableau d'octets (unsigned char). Ensuite, si le...
Il ne faut pas employer de cast, il suffit de recoller correctement les morceaux de ton entier :
unsigned long Read2Bytes(std::istream& Stream)
{
unsigned char Buffer[2];
...
Et si tu mets 2 octets dans un unsigned short qui en fait 4 par exemple, il va se passer quoi à ton avis ?
En fait il y a deux solutions :
- Définir des types de taille fixe, càd tout un tas de...
Désolé pour ton message, j'ai fait "éditer" au lieu de "citer" :oops: http://djforum.free.fr/smileysmileysmiley/v2/pas_drole/smileysmiley.com.stupid.gif
Bref, voilà tout de même ma réponse :
...
1) Oui
2) Tu ne pourras jamais mettre 2 ou 4 octets dans un unsigned char... Tu peux créer un tableau de N char, ou directement utiliser des types ayant la bonne taille, pour peu que tu sois sûr...
Vous avez un bloqueur de publicités installé.
Le Club Developpez.com n'affiche que des publicités IT, discrètes et non intrusives.
Afin que nous puissions continuer à vous fournir gratuitement du contenu de qualité, merci de nous soutenir en désactivant votre bloqueur de publicités sur Developpez.com.