小编San*_*Kim的帖子

“venv activate”不会改变我的Python路径

我创建了一个虚拟环境;假设 test_venv,我激活它。一切成功。

然而,Python 解释器的路径不会改变。我已经在下面说明了这种情况。

为了澄清起见,python 路径应该是~/Desktop/test_venv/bin/python.

>>> python3 -m venv Desktop/test_venv

>>> source Desktop/test_venv/bin/activate

(test_venv) >>> which python
/usr/bin/python 
Run Code Online (Sandbox Code Playgroud)

python virtualenv python-3.x python-venv

13
推荐指数
2
解决办法
9432
查看次数

打印浮点数的位数

我知道。我知道。这个问题之前已经回答过,但我有一个稍微不同且更具体的问题。

正如标题所示,我的目标是浮动序列cout32 bits

前面的问题提供的解决方案是使用联合。

union ufloat{
   float f;
   uint32_t u;
};
Run Code Online (Sandbox Code Playgroud)

这一切都很好。我已经成功地打印了浮点数的位。

union ufloat uf;
uf.f = numeric_limits<float>::max();
cout << bitset<32>(uf.f) << "\n"; // This give me 0x00000000, which is wrong.
cout << bitset<32>(uf.u) << "\n"; // This give me the correct bit sequence.

Run Code Online (Sandbox Code Playgroud)

我的问题是为什么 dobitset<32>(uf.f)不起作用,但 bitset<32>(uf.u) 起作用?

这个问题的绿色勾号答案 获取了 C 中浮点数的位表示说了一些关于“类型双关”的内容,我认为它与此有关。但我不确定具体如何。

有人可以澄清一下吗?谢谢

c++ floating-point bitset type-punning

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