华为OD机试题解析 - Java实现整数编码
题目背景与需求分析
本题要求设计一个整数编码方法,核心在于编码后所占的字节数应尽可能少,且符合特定的编码规则。通过对非负整数进行7位一组的编码,并利用字节的最高位标识是否存在后续字节,我们能实现高效的压缩编码。同时,编码结果应为16进制字符的大写形式输出。
编码规则
- 7位一组编码:每个字节的低7位用于存储待编码数字的补码。
- 最高位标记:每个字节的最高位表示是否存在后续字节,
1
表示还有后续字节,0
表示当前字节是最后一个字节。 - 小端序编码:低位和低字节放在低地址上。
- 输出格式:输出按16进制字符形式,字母需转换为大写。
输入输出格式
- 输入:一个表示非负整数的字符串,范围为
[0, 1<<64 - 1]
。 - 输出:字符串形式的16进制编码结果。