T213469 变变变

T213469 变变变模拟进制

#include <bits/stdc++.h>
using namespace std;
#define ll unsigned long long//宏定义
int ar[105];//二进制位数

int main() {

	ll n, m;

	while (cin >> n >> m) {//c++的多组输入,没卡
		int cnt = 1;
		ll ans = 0;
		fill(ar + 1, ar + 65, 0);//初始化

		while (n > 0) {//转二进制
			ar[cnt++] = n % 2;
			n /= 2;
		}

		cnt = 0;

		for (int i = m; i <= 64; i++) {//一边完成交换,一边把二进制转换成十进制

			ans += (pow(2, cnt) * ar[i]);
			cnt++;
		}

		for (int i = 1; i < m; i++) {//还是在交换转十进制

			ans += (ar[i] * pow(2, cnt));
			cnt++;
		}

		cout << ans << "\n";
	}

	return 0;
}
上一篇:新型车载信息显示技术--“ARHUD”带动智能座舱新体验


下一篇:C指针的总结