# 大整数位序反转

# 题目内容

小华是一名嵌入式开发工程师,在处理芯片寄存器数据时,经常需要对超多位数据进行位翻转操作。寄存器中的数据可能是几百位甚至更长。

给定一个十进制大整数(最多 $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