プロが教える店舗&オフィスのセキュリティ対策術

現在、独習C++という本でC++を学んでおります。
本の浮動小数に関する項で以下の表現が出てきましたが、pの示している意味がわかりませんでした。

float f1 = 0x89.abp1f;
float f2 = 0xcd.efp-2;

はじめは16進数にpという表現はないはずだと思ったのですが、
VisualStudioを使ってよく考えたところ、bit_shiftの表現のように思えました。
そのように考えて間違いないでしょうか。詳しい方教えてくださると助かります。
よろしくお願いします。

・p1と記述されている場合1bit左にシフト
・p-2記述されている場合2bit右にシフト

A 回答 (1件)

C++17 の 十六進浮動小数点リテラル です。


p はシフトと似たようなものではありますが、
浮動小数点の指数部を表すものです。

なので
p1 = 2の1乗 = 仮数部に2を掛ける
p-2 = 2の-2乗 = 仮数部に1/4を掛ける

参考)
https://cpprefjp.github.io/lang/cpp17/hexadecima …
    • good
    • 0
この回答へのお礼

ありがとうございます。理解できました。C++には難しい表現があるのですね。参考書には解説もなくいきなり出てくるので、理解に時間がかかってしまいました。

お礼日時:2022/11/15 10:38

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!