求问一个关于long long类型的有关问题
求问一个关于long long类型的问题
#include<stdio.h>
#include<stdlib.h>
main()
{signed long long x=1<<45;
printf("%I64d\n",x);
system("pause");
}
这个的运行结果是0,似乎是左移溢出了,可是long long类型的大小是8字节,不应该溢出的把,这个是为什么?用的是Dev c++。求解释。。。
------解决方案--------------------
试试这样
signed long long x=1LL<<45
------解决方案--------------------
#include<stdio.h>
#include<stdlib.h>
main()
{signed long long x=1<<45;
printf("%I64d\n",x);
system("pause");
}
这个的运行结果是0,似乎是左移溢出了,可是long long类型的大小是8字节,不应该溢出的把,这个是为什么?用的是Dev c++。求解释。。。
------解决方案--------------------
试试这样
signed long long x=1LL<<45
------解决方案--------------------