我有像那样的浮动
float f = 0b 00000000 11110001 00000000 00000000
我想把第一个(不是第0个)字节带到char变量。 我不能做<<和>>。 我怎么能这样做?
答案 0 :(得分:3)
浮点值的二进制表示通常没什么问题。任何你尝试的都不会是便携式的。但是,一般来说,这两个工作:
char c(reinterpret_cast<char*>(&f)[1]);
union {
float f;
char c[sizeof(float)];
} u = { f };
u.c[1];
答案 1 :(得分:2)
char bla;
bla = *((char *) &f + 1)
还要记住,对于endianness,在小端系统上你可能真正需要的是字节2(假设你将字节从0计数到3)。在这种情况下,您可以在上面的代码中使用+ 1
更改+ 2
。