相关疑难解决方法(0)

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

我试过这个:

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问题中描述的问题如何使用遗传算法求解线性方程?.

c++ floating-point bitwise-operators genetic-algorithm

45
推荐指数
5
解决办法
6万
查看次数

什么是短路以及在Java编程时如何使用它?

可能重复:
在布尔结果已知之后,java是否评估剩余条件
为什么我们通常||不使用|,有什么区别?

前几天我错过了我的课堂讲座,我想知道是否有人可以解释短路是什么,也许是一个简单的Java程序中使用它的例子.谢谢你的帮助!

java short short-circuiting

18
推荐指数
1
解决办法
4万
查看次数

如何在C++上的"double"上使用按位运算符?

我被要求在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++ bitwise-operators

9
推荐指数
2
解决办法
3万
查看次数

如果声明和 - 变量

我正在努力完成我的C++考试,而且我正在做一些过去的论文.然后我对这段代码理解任务进行了标记.我想知道,为什么在这个if语句中没有值变为4?

int found = 0, value = 5;
if (!found || --value == 0) {
    cout << "danger";
}
cout << "value =" << value << endl;
Run Code Online (Sandbox Code Playgroud)

c++ if-statement

1
推荐指数
1
解决办法
111
查看次数