c++ - C++でFLを16進数に変換する

原文 c++ floating-point hex

私はC++とプログラミングに不慣れで、ポインタを使用して浮動小数点を16進数に変換するC++プログラムを作成したい

私は他のスレッドを調べて、本当にこれを把握しようとしましたが、理解できないようです。
これが私がこれまでに行ったことです:

int main()
{
    float number = -12.0
    unsigned char *ptr = ((unsigned char*) &number);

    for (int i = 0; i < sizeof(float); i++)
    {
        cout << "Byte "  [i] << "is : " << ptr[i] << endl;
    }




これで、フロートを構成するバイトにアクセスできると思います。しかし、これを16進数に変換するためのアイデアを提案できますか?おそらく、この背後にあるバイナリを読み取れるようにする必要があります...しかし、どうすればいいのかよくわかりません。

注:2進数から16進数に変換する方法を理解しています
答え
iostreamは数値を16進数で出力できます。

int main() {

float number=-1.0;

unsigned char *ptr = ((unsigned char*)&number);

for (int i = 0; i < sizeof(float); i++)
{
    cout << "Byte ";
    cout << setw(0) << dec << i << "is : ";
    cout << setw(2) << setfill('0') << hex << ptr[i] << endl;

} 
関連記事

c++ - スレッドC++を使用してシェルコマンドを実行する

c++ - ポインターと多次元配列の質問

c++ - Qt:フォーム全体にフォントの変更を適用する

java - 最小の「XOR」演算でバイナリマトリックスを再作成する

c++ - doxygenの「ファイルドキュメント」リストから「README.md」を除外します

java - Android Gstreamer SDKでANativeWindow_lockがエラー-22を返す

c++ - C++プロキシDLL(64ビット)

c++ - 誤った値を返す二重ハッシュ関数

c++ - OpenCVでのレーン検出器分割線C++

c++ - Qtでマウスイベントが発生したときに呼び出される関数の宣言