#include <stdint.h>
int
main()
{
//定义r、g、b分量
uint8_t r = 174, g = 64, b = 254;
//使用位运算符将三个uint8_t合并为一个uint32_t
uint32_t rgb = (
static_cast
<uint32_t> (r) << 16 |
static_cast
<uint32_t> (g) << 8 |
static_cast
<uint32_t> (b));
//将调用reinterpret_cast将uint32_t转换为float
float
rgbF = *
reinterpret_cast
<
float
*>(&rgb);
//将调用reinterpret_cast将uint32_t转换为float
rgb = *
reinterpret_cast
<uint32_t*>(&rgbF);
//解析出r、g、b分量
uint8_t rr = (rgb >> 16) & 0x0000ff;
uint8_t gg = (rgb >> 8) & 0x0000ff;
uint8_t bb = (rgb)& 0x0000ff;
return
(0);
}