Problem6050--进制转换

6050: 进制转换

[Creator : ]
Time Limit : 1.000 sec  Memory Limit : 256 MiB

Description

皮皮想把一个二进制非负整数转换为对应的十六进制整数。为此,他在网上查找到了一种名为“取四合一”的方法:
先将二进制数从右到左进行分组,每 $4$ 位一组,高位不足 $4$ 位时,在更高位处用 $0$ 补齐。然后按照以下对应关系,将每组二进制位所对应的十六进制数码依次写出。

例如,二进制非负整数 $1001011000$,从左至右可以划分为 $10$(不足四位,因此用 $0$ 在更高位处补齐,即 $0010$)、$0101$、$1000$ 三组,每组对应的十六进制数码为 $2$、$5$、$8$,因此最终得到十六进制整数为 $258$。
现在,给出一个二进制非负整数,请你帮皮皮计算其对应的十六进制整数。

Input

仅一行,包含一个 $01$ 字串,表示一个二进制非负整数。

Output

仅一行,包含一个仅由数码 $0 \sim 9$ 和大写字母 $A \sim F$ 所组成的字串,表示输入所对应的十六进制整数。请勿输出多余的 $0$。

Constraints

对于 $30\%$ 的数据,保证输入的二进制位数不超过 $18$。
对于 $60\%$ 的数据,保证输入的二进制位数不超过 $60$。
另有 $25\%$ 的数据,保证输入的二进制位数为 $4$ 的倍数。
对于 $100\%$ 的数据,保证输入的二进制位数不超过 $10^6$,高位无多余的 $0$。

Sample 1 Input

1001011000

Sample 1 Output

258

Sample 2 Input

101011111000

Sample 2 Output

AF8

Source/Category