Drucken aus byte-Streams in C++

Mit Hilfe dieser Website, C++ int zu byte array, ich habe einen code zum serialisieren von int zu byte-stream.

Den byte-stream-Daten aus dem integer-Wert 1234 '\x00\x00\x04\xd2' im big-endian-format, und ich brauche zu kommen mit einer utility-Funktion zur Anzeige des byte-stream. Dies ist meine erste 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);
}

Wie bekomme ich den richtigen Wert auf dem Bildschirm sowohl in dezimaler und hex?

  • Verwenden Sie die std::hex() IO-manipulator
InformationsquelleAutor prosseek | 2013-06-15
Schreibe einen Kommentar