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
Du musst angemeldet sein, um einen Kommentar abzugeben.
Für hex:
Dezimal:
printf
gegenstd::cout
, und ich persönlich Stimme.%02x
statt%.2x
?%.2x
, aber wahrscheinlich%02x
ist mehr selbst-erklärend.