我已经告诉别人,编写using namespace std;代码是错误的,我应该用std::cout和std::cin直接代替.
为什么被using namespace std;认为是不好的做法?是低效还是冒着声明模糊变量(与名称std空间中的函数具有相同名称的变量)的风险?它会影响性能吗?
运行以下代码行时:
int i,a;
for(i=0;i<=4;i++)
{
a=pow(10,i);
printf("%d\t",a);
}
Run Code Online (Sandbox Code Playgroud)
我很惊讶地看到输出,它出来了 1 10 99 1000 9999而不是1 10 100 1000 10000.
可能的原因是什么?
注意
如果您认为它是浮点不准确,在上面的for循环中i = 2,存储在变量中的值a是99.
但如果你写的话
a=pow(10,2);
Run Code Online (Sandbox Code Playgroud)
现在a的价值出现了100.怎么可能?
我正在尝试实现BigInt并阅读了一些关于它的线程和文章,其中大多数建议使用更高的基数(256或2 ^ 32甚至2 ^ 64).
为什么更高的基数有利于此目的?
我有的其他问题是我应该如何将字符串转换为更高的基数(> 16).我读过没有标准的方法,除了base64.最后一个问题,我如何使用这些更高的基础.一些例子会很棒.