我试过这个:
float a = 1.4123;
a = a & (1 << 3);
Run Code Online (Sandbox Code Playgroud)
我得到一个编译错误,说操作数&不能是float类型.
当我做:
float a = 1.4123;
a = (int)a & (1 << 3);
Run Code Online (Sandbox Code Playgroud)
我让程序运行.唯一的事情是按位操作是在舍入后获得的数字的整数表示上完成的.
以下也是不允许的.
float a = 1.4123;
a = (void*)a & (1 << 3);
Run Code Online (Sandbox Code Playgroud)
我不明白为什么int可以投,void*但不是float.
我这样做是为了解决Stack Overflow问题中描述的问题如何使用遗传算法求解线性方程?.
前几天我错过了我的课堂讲座,我想知道是否有人可以解释短路是什么,也许是一个简单的Java程序中使用它的例子.谢谢你的帮助!
我被要求在C中获取不同类型的内部二进制表示.我的程序目前在'int'中正常工作,但我想用"double"和"float"来使用它.我的代码看起来像这样:
template <typename T>
string findBin(T x) {
string binary;
for(int i = 4096 ; i >= 1; i/=2) {
if((x & i) != 0) binary += "1";
else binary += "0";
}
return binary;
}
Run Code Online (Sandbox Code Playgroud)
当我尝试使用"double"或"float"实例化模板时,程序失败.
我正在努力完成我的C++考试,而且我正在做一些过去的论文.然后我对这段代码理解任务进行了标记.我想知道,为什么在这个if语句中没有值变为4?
int found = 0, value = 5;
if (!found || --value == 0) {
cout << "danger";
}
cout << "value =" << value << endl;
Run Code Online (Sandbox Code Playgroud)