单点时限: 1.0 sec
内存限制: 256 MB
给定一个整数 n,将 n 的二进制表示(不包括开头可能的值为 0 的位,n=0 表示为 1 位 0)前后倒置,输出倒置后的二进制数对应的整数。
输入格式
输入一个数,表示 n。
对于 30% 的数据,n≤1018。
对于 90% 的数据,n≤10100。
对于 100% 的数据,0≤n≤101000。
输出格式
输出结果。
样例
input
10
output
5
input
0
output
0
input
10000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
output
7715442851596369463000695959966459436485038766875199595258933941809737
提示
10:其二进制表示为 1010,倒置后为 0101,对应输出就是 5。
10000000000000000000000000000000000000000000
00000000000000000000000000000000000000000000
0000000000000
的二进制表示为:
10010010010011010110100100101100101001100001
10111110011101011000010110010011110000100110
00100110011100000101111110011100010101100111
00100000010001110001000010001101001111100101
01010101100100100001100001000101010000010111
01000111100010000000000000000000000000000000
00000000000000000000000000000000000000000000
0000000000000000000000000
倒置后为:
00000000000000000000000000000000000000000000
00000000000000000000000000000000000000000000
00000000000010001111000101110100000101010001
00001100001001001101010101010011111001011000
10000100011100010000001001110011010100011100
11111101000001110011001000110010000111100100
11010000110101110011111011000011001010011010
0100101101011001001001001
对应十进制值为:
7715442851596369463000695959966459436485038766875199595258933941809737
int(字符串,进制)转化为特定进制下的十进制数
n=int(input())
s=str(bin(n))[2:]
sum=0
for i in range(len(s)):
if s[i]=='1':
sum+=2**i
print(sum)
print(int(('{0:b}'.format((int)(input())))[::-1],2))