Tuesday, November 25

惯性太可怕
今天看了一眼一个很久以前用C++编的程序,突然发现在这个程序我这么写到
#define DECIMAL_DIGIT 3
... ...
int a = 10^DECIMAL_DIGIT; //求10的n次方
... ...
MyGod,我居然用这样的语句来计算10的3次方。
这是可是C++啊,不是Basic。
正确的写法应该是
#include < cmath >
using namespace std;
......
#define DECIMAL_DIGIT 3
... ...
double a = pow(10,DECIMAL_DIGIT)
... ...

我原来的写法至少犯了2个错误,
1,在Basic里^是求幂的符号,而在C++(包括C#)里则是求2进制"异或"的符号,作用是完全不同的。
2,无论是basic也好还是C++也好,求幂以后的返回值都是double型,即使你的输入都是int型。

沉重检讨,我为什么会犯这种错误!!!!
都是VB惹的祸????
很多时候BASIC确实很好用,我都不自觉地用到C++里了。惯性实在可怕。

No comments: