Avec l'aide de ce site, C++ int vers byte array J'ai un code pour sérialiser un int dans un flux d'octets.
Les données du flux d'octets de la valeur entière 1234 sont ' \x00\x00\x04\xd2 ' au format big endian, et je dois trouver une fonction utilitaire pour afficher le flux d'octets. Voici ma première version.
#include <iostream>
#include <vector>
using namespace std;
std::vector<unsigned char> intToBytes(int value)
{
std::vector<unsigned char> result;
result.push_back(value >> 24);
result.push_back(value >> 16);
result.push_back(value >> 8);
result.push_back(value );
return result;
}
void print(const std::vector<unsigned char> input)
{
for (auto val : input)
cout << val; // <--
}
int main(int argc, char *argv[]) {
std::vector<unsigned char> st(intToBytes(1234));
print(st);
}
Comment puis-je obtenir la valeur correcte à l'écran en décimal et en hexadécimal ?