我试过这个:
float a = 1.4123;
a = a & (1 << 3);
我收到一个编译器错误,提示操作数&
不能是浮点类型。
当我做:
float a = 1.4123;
a = (int)a & (1 << 3);
我让程序运行。唯一的一点是,按位运算是对四舍五入后获得的数字的整数表示进行的。
以下也是不允许的。
float a = 1.4123;
a = (void*)a & (1 << 3);
我不明白为什么int
可以强制转换为void*
但不能float
。
我这样做是为了解决堆栈溢出问题如何使用遗传算法求解线性方程组中描述的问题?.