题单练习 进制转换

A5316 | 二进制转十六进制

时间限制1s
内存限制128MB
通过 / 提交0/0

题目描述

$fangz$想把一个二进制非负整数转换为对应的十六进制整数。为此,他在网上查找到了一种名为“取四合一”的方法:

先将二进制数从右到左进行分组,每$4$位一组,高位不足$4$位时,在更高位处用$0$补齐。然后按照以下对应关系,将每组二进制位所对应的十六进制数码依次写出。
进制转换
例如,二进制非负整数$1001011000$,从左至右可以划分为$10$(不足四位,因此用$0$在更高位处补齐,即$0010$)、$0101$、$1000$三组,每组对应的十六进制数码为$2$、$5$、$8$,因此最终得到十六进制整数为$258$。

现在,给出一个二进制非负整数,请你帮$fangz$计算其对应的十六进制整数。

输入格式

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

输出格式

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

输入输出样例

输入 #1
1001011000
输出 #1
258
输入 #2
101011111000
输出 #2
AF8
C++ 编辑器
输入
输出