北邮机试2018计算机A-逆序二进制

北邮机试2018计算机A-逆序二进制
buf[]本来存的数字是逆序的,本题要求逆序,正好直接用

#include<bits/stdc++.h>
using namespace std;
typedef long long LL;
int main(){
	LL a;
	LL buf[105];
	LL num;
	while(scanf("%lld",&a)!=EOF){
		num = 0;
	while(a!=0){
		buf[num++] = a%2;
		a = a/2;
	}
	LL sum = 0;
	for(LL i=0;i<num;i++){
		sum = sum*2+buf[i];
	}
	printf("%lld\n",sum);
	}
	return 0;
}