请看下面的简单代码:
#include <iostream>
#include <stdlib.h>
using namespace std;
int main(void)
{
unsigned long currentTrafficTypeValueDec;
long input;
input=63;
currentTrafficTypeValueDec = (unsigned long) 1LL << input;
cout << currentTrafficTypeValueDec << endl;
printf("%u \n", currentTrafficTypeValueDec);
printf("%ld \n", currentTrafficTypeValueDec);
return 0;
}
为什么 printf() 显示当前的 currentTrafficTypeValueDec(无符号长整型)值为负数?
输出结果如下:
9223372036854775808
0
-9223372036854775808