【发布时间】:2009-06-21 23:06:06
【问题描述】:
为什么这段代码没有写 0 作为最后一个元素,而是 18446744073709551615? (用g++编译)
#include <iostream>
using namespace std;
int main(){
unsigned long long x = (unsigned long long) (-1);
for(int i=0; i <= 64; i++)
cout << i << " " << (x >> i) << endl;
cout << (x >> 64) << endl;
return 0;
}
【问题讨论】:
-
我知道这完全不相关,但是,永远不要使用“使用命名空间 std;。这只是一个等待发生的意外,花费数小时追逐一个发生的错误,因为你或一个库恰好有一个与 std 中某物名称匹配的方法。