Je veux lire certains octets de mon fichier en tant que valeur entière. Par exemple, le fichier contient la valeur 0x000003BB
qui est égale à 955.C++ Comment lire les octets comme endianness Integer indépendant?
je pouvais lire les données de cette façon:
ifstream input ("C:/Desktop/myFile", ios::binary);
uint8_t buffer[4] = {0};
input.read((char*)buffer, sizeof(buffer));
Mais comment puis-je convertir le tampon tableau à la valeur correspondante int 955? Et si possible d'une manière indépendante de l'endianness, parce que ceci et quelques autres fichiers dans l'ordre de Big Endian Byte mais mon système sont sur Little Endian Byte Order. Merci :)
il n'a pas considéré le boutisme. Si j'imprime les données-var j'ai obtenu la valeur '3137536000 'qui est égale à '0xBB030000' mais je dois obtenir '0x000003BB ' – Opa114
@ Opa114 effectivement, ce code * considère * endianness * dans le sens où il fonctionne sur une machine de toute endianness. Il y a simplement une erreur, et cela convertit * little * endian, plutôt que big endian qui est ce que vous vouliez. Changez les indices de tampon pour aller de 0 à 3, et ça marchera. – user2079303
@ user2079303 merci pour l'indice! – Opa114