标签:lld 十六 www inf namespace tmp map lan ++
关于进制的相互转换可以看看我的 这一篇博客<<戳 ,里面有写。
#include <iostream>
#include <cstdio>
#include <cstring>
#include <algorithm>
#include <cmath>
#include <queue>
#include <stack>
#include <map>
#include <set>
#include <list>
using namespace std;
#define R read()
#define GC getchar()
#define ll long long
#define ull unsigned long long
#define INF 0x7fffffff
#define LLINF 0x7fffffffffffffff
ll read(){
ll s=0,f=1;
char c=GC;
while(c<‘0‘||c>‘9‘){if(c==‘-‘)f=-f;c=GC;}
while(c>=‘0‘&&c<=‘9‘){s=s*10+c-‘0‘;c=GC;}
return s*f;
}
ll n,m;//好像不用long long也没问题,我为了保险就打上了qwq
ll t=1;
ll tmp[100],tot;
int main(){
n=R;
while(n){//10进制转2进制
tmp[++tot]=n%2;
n/=2;
}
for(int i=1,j=32;i<=16;++i,--j){//反过来,因为每次取模的数都应该从后往前放,但是并不知道要放多少个,所以就正着进来啦
swap(tmp[i],tmp[j]);
}
for(int i=1,j=17;i<=16;++i,++j){//高低位交换
swap(tmp[i],tmp[j]);
}
for(ll i=32;i>=1;--i){//2进制转10进制
m+=tmp[i]*t;
t*=2;
}
printf("%lld",m);
return 0;
}
标签:lld 十六 www inf namespace tmp map lan ++
原文地址:https://www.cnblogs.com/FUXyao/p/12848407.html