只是对某事感到好奇。在将 HTML 颜色(其单个颜色分量通过 2 位十六进制值表示)转换为 0.0 到 1.0 之间的浮点数以便我们可以将它们与 OpenGL 一起使用时,我开始好奇一些事情。我们必须将十六进制值除以 255 才能得到对应的 OpenGL 值,但我们不能简单地按原样使用十六进制值,因为这会产生整数除法。
现在我知道这些都可以解决这个问题(当然)......
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
...但我想知道是否有任何方法可以仅装饰十六进制值,以便将其解释为浮点数(就像您在 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
同样,不要试图找出如何实现我需要的结果,因为我的代码工作得很好。我只是想知道我是否可以通过使用类似于'f'如何处理十进制值而不是使用上述三种有效的方法来装饰十六进制值来使代码更清晰。