# 大整数位序反转
# 题目内容
小华是一名嵌入式开发工程师,在处理芯片寄存器数据时,经常需要对超多位数据进行位翻转操作。寄存器中的数据可能是几百位甚至更长。
给定一个十进制大整数(最多 $100$ 位),请将其二进制表示中的所有位顺序全部翻转(最低位变成最高位,次低位变成次高位,以此类推),然后输出翻转后的十进制表示。
# 输入描述
一个十进制大整数(字符串形式,范围:$0 \sim 10^{100} - 1$,输入不带前导零,除非为 $0$)。
# 输出描述
翻转后的十进制整数(字符串形式,不能有前导零,除非输出为 $0$)。
# 样例
# 样例 1
输入
1
1
输出
1
1
说明: $1$ 的二进制为 1,翻转后仍为 1,对应十进制 $1$。
# 样例 2
输入
2
1
输出
1
1
说明: $2$ 的二进制为 10,翻转为 01(即 1),对应十进制 $1$。
# 样例 3
输入
4
1
输出
1
1
说明: $4$ 的二进制为 100,翻转为 001(即 1),对应十进制 $1$。
# 代码
const readline = require('readline');
const rl = readline.createInterface({
input: process.stdin,
output: process.stdout,
});
rl.on('line', (n) => {
const bin = BigInt(n).toString(2).split('').reverse().join('');
const ans = BigInt('0b' + bin).toString();
console.log(ans);
})
1
2
3
4
5
6
7
8
9
10
11
2
3
4
5
6
7
8
9
10
11