通过率 57% · 提交 120 · 通过 68
小慕正在设计一种高效的整数编码方案,目标是让数值越小的数字,编码后占用的字节数越少。 编码规则如下: 1. 编码时以7位为一组,每个字节的低7位用于存放待编码数字的。 2. 每个字节的最高位用来指示是否还有后续字节:若该位为1,表示后面还有更多字节;若为0,表示当前字节是最后一个字节。 3. 采用编码方式,即低位字节存放在低地址处。 4. 编码结果以十六进制数字符串形式输出,其中小写字母需转换为大写字母。
这类题属于华为 OD 机考真题方向中「100分 / 模拟」方向的高频题型,通常考察对「100分 / 模拟」的建模能力与边界条件处理。掌握本题的解题思路后,可举一反三应对同类真题方向,稳步提升机考通过率。
提示:带虚线的词点一下有通俗解释。
输入的为一个字符串表示的非负整数。待编码的数字取值范围为[0, 1 << 64 - 1]
输出一个字符串,表示整数编码的16进制码流
示例 1
输入示例
0
输出示例
00
输出的16进制字符,不足两位的前面补0,如00、01、02。
示例 2
输入示例
100
输出示例
本平台为独立第三方培训机构,与华为技术有限公司无任何关联;课程的服务内容与权益以购买协议为准,学习效果因个人情况而异。「华为 OD」「华为可信」等仅为对岗位与考试方向的客观描述,相关商标归各自权利人所有。
登录后可查看你在本题的历史提交,以及每次的各用例通过情况。
64
100的二进制表示为0110 0100,只需要一个字节进行编码;字节的最高位置0,剩余7位存储数字100的低7位 (110 0100) ,所以编码后的输出为64。
示例 3
输入示例
1000
输出示例
E807
1000的二进制表示为0011 1110 1000,至少需要两个字节进行编码 第一个字节最高位置1,剩余的7位存储数字。1000的第一个低7位 (1101000),所以第一个字节的二进制为1110 1000,即E8 第二个字节最高位置0,剩余的7位存储数字。1000的第二个低7位 (0000111),所以第一个字节的二进制为0000 0111,即07 采用小端序编码,所以低字节E8输出在前,高字节07输出在后。
时间限制 1000 ms · 内存限制 128 MB
© 2026 广州慕课网络科技有限公司 · 吴师兄学算法官网 版权所有