输入一个数t(0<=t<=10^18),输出100位它的二进制,为什么这个程序不对?
#include<iostream>#include<cstdio>
using namespace std;
int main(void){
int i;
long long int t;
while(scanf("%lld",&t)!=EOF){
for(i=1;i<=40;i++) printf("0"); //我计算了一下,2^60=1.15e18,所以前40位一定是0,就直接输出了
for(i=59;i>=0;i--){
if(t&(1<<i)) printf("1");
else printf("0");
}
printf("\n");
}
return 0;
}