Was ist der richtige Weg, um die Ausgabe der hex-Daten in eine Datei?

Hab ich überlesen [ostream] << hex << 0x[hex value], aber ich habe einige Fragen dazu,

(1) ich mein Datei-stream, die output zu sein, eine hex-Ausgabe-stream-Datei, mit output.open("BWhite.bmp",ios::binary);, denn ich wusste, dass, macht das das hex parameter in der output<< operation überflüssig?

(2)
Wenn ich einen integer-Wert wollte ich auf speichern in der Datei, und ich habe diese:

int i = 0;
output << i;

ich würde gespeichert werden in little-endian oder big-endian? Wird die endi-ness ändern, basierend auf dem computer das Programm ausgeführt oder kompiliert?

Ist die Größe dieses Wertes hängt von dem computer, mit dem es ausgeführt? Würde ich die hex-parameter?

(3) gibt es eine Möglichkeit, um die rohen hex-Ziffern in einer Datei? Wenn ich die Datei mit dem hex-Ziffer 43, was soll ich verwenden?

output << 0x43 und output << hex << 0x43 beide Ausgabe ASCII 4 ASCII 3.

Zweck der Ausgabe dieser hex-Ziffern ist, um die header für eine .bmp-Datei.

  • Die endian Typ hat in der Tat davon abhängen, auf welcher Plattform Sie führen das Programm auf. Und so ist die Größe von int.
  • nicht output << 0x43 Ausgabe "67"?
  • Aber der Ausdruck output < i ist nicht betroffen von endian Typ als Ausgabe nur text ist.
Schreibe einen Kommentar