Link
熟悉了位運算之後發現這。。。真的是一道橙題
思路
我們需要位移操作,即"<<“這玩意,和”>>"這玩意。
a<<b就是將a的二進制左移b位,相當於a*(2^b)
a>>b就是將a的二進制右移b位,相當於a/(2^b)(而且這玩意會把尾數吃掉)
然後就很簡單了。
#include<cstdio>
long long n,a,b;
int main(){
scanf("%lld",&n);
a=n>>16; //前16位的數
b=n-(n>>16<<16)<<16; //後16位的數(可以自行推一下)放到前面
printf("%lld",a+b); //直接輸出
}