A5316 | 二进制转十六进制
时间限制1s
内存限制128MB
通过 / 提交0/0
题目描述
$fangz$想把一个二进制非负整数转换为对应的十六进制整数。为此,他在网上查找到了一种名为“取四合一”的方法:
先将二进制数从右到左进行分组,每$4$位一组,高位不足$4$位时,在更高位处用$0$补齐。然后按照以下对应关系,将每组二进制位所对应的十六进制数码依次写出。

例如,二进制非负整数$1001011000$,从左至右可以划分为$10$(不足四位,因此用$0$在更高位处补齐,即$0010$)、$0101$、$1000$三组,每组对应的十六进制数码为$2$、$5$、$8$,因此最终得到十六进制整数为$258$。
现在,给出一个二进制非负整数,请你帮$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++ 编辑器
输入
输出
可保存默认模板;新题优先使用已保存模板。
当前快捷键仅展示,暂不支持修改。
- 撤销
Ctrl / ⌘ + Z - 重做
Ctrl / ⌘ + Y - 查找
Ctrl / ⌘ + F - 全选
Ctrl / ⌘ + A - 复制
Ctrl / ⌘ + C - 剪切
Ctrl / ⌘ + X - 粘贴
Ctrl / ⌘ + V - 自动排版
工具栏排版按钮 - 草稿保存
编辑时自动保存到本机
历史
提交记录
状态说明时间源码
AI
作答助手
你好,我是作答助手。可以问思路、复杂度、样例含义或代码报错原因;不会直接给出完整 AC 代码。
确定要清空代码吗?