如何对浮点数执行按位运算

如何对浮点数执行按位运算

我试过这个:

float a = 1.4123;a = a & (1 << 3);

我得到一个编译错误,说操作数&不能是float类型。

当我做:

float a = 1.4123;a = (int)a & (1 << 3);

我让程序运行。唯一的事情是按位操作是在舍入后获得的数字的整数表示上完成的。

以下也是不允许的。

float a = 1.4123;a = (void*)a & (1 << 3);

我不明白为什么int可以投,void*但不是float


当年话下
浏览 1199回答 3
3回答

忽然笑

float&nbsp;a&nbsp;=&nbsp;1.4123;unsigned&nbsp;int*&nbsp;inta&nbsp;=&nbsp;reinterpret_cast<unsigned&nbsp;int*>(&a);*inta&nbsp;=&nbsp;*inta&nbsp;&&nbsp;(1&nbsp;<<&nbsp;3);
打开App,查看更多内容
随时随地看视频慕课网APP