何かに興味があるだけです。OpenGL で使用できるように、HTML の色 (個々の色コンポーネントは 2 桁の 16 進数値で表されます) を 0.0 から 1.0 の間の浮動小数点数に変換しているときに、あることに気付きました。16 進数値を 255 で除算して対応する OpenGL を取得する必要がありますが、整数除算が生成されるため、16 進数値をそのまま使用することはできません。
これで、これらすべてがこの問題を回避できることがわかりました(もちろん)...
float r = 0xFD / (float)0xFF; // Works because of the cast to float
float r = 0xFD / 255.0f; // Works because of the explicit float
float d = 0xFF;
float r = 0xFD / d; // Works because 'd' is a float
...しかし、キャスト、計算、または中間変数を実行する必要なく、16 進数値を浮動小数点数として解釈する方法があるかどうか疑問に思っていました (1.0f の「f」で行うように)。
これらはもちろん機能しません...
float r = 0xFD / 0xFF; // Integer division yields an integer, not float
float r = 0xFD / 0xFFf; // Interprets 'f' as part of the hex value
繰り返しますが、コードが正常に機能するため、必要な結果を達成する方法を見つけようとはしません。上記の 3 つの方法を使用する代わりに、16 進値を「f」が 10 進値でどのように機能するかに似たもので装飾することで、コードをよりきれいにすることができるかどうか疑問に思っています。