c++ - 右移 float

标签 c++ bit-shift

我有这样的 float 变量

float f = 0b 00000000 11110001 00000000 00000000 

我想将第 1 个(不是第 0 个)字节放入 char 变量。 我不能做 << 和 >>。 我该怎么做?

最佳答案

一般来说,浮点值的二进制表示几乎没有什么乱七八糟的。您将尝试的任何东西都不可移植。然而,一般来说,这两个工作:

char c(reinterpret_cast<char*>(&f)[1]);
union {
    float f;
    char  c[sizeof(float)];
} u = { f };
u.c[1];

关于c++ - 右移 float ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8779716/

相关文章:

C++ - 添加列表 <Task> l(或任何 STL 容器)作为数据成员导致错误,当删除分配在堆上的任务数组时

objective-c - objective-c : binary operations with Integers?

c - 了解如何使用 C 中的按位运算符计算数字的尾随零

c - 如果数据左对齐,读取 MSB 和 LSB

c - C 中的左移运算符给出奇怪的结果

c++ - 如何中断其他 std::threads C++

c++ - undefined reference : Cblas not linking

c++ - struct stat c++ 不在不同的计算机上编译

c++ - 我可以在std::find_if的并行版本中使用非平凡的可迭代迭代器吗?

c - 按整数值进行位移位