AlgoMooc
你已开通华为OD训练营权益,还差最后一步——完成入营激活(兑换课程 + 加飞书 + 登记服务群),即可解锁全部课程与专属服务。去激活 →
← 返回题库

K0018. 魔法世界的数字咒语转换

简单通过率 40% · 提交 308 · 通过 123
模拟位运算数学

在魔法学院中,数字的存储方式与普通世界截然不同。小慕在练习时发现,魔法师们通过两种古老的咒语将数字转化为独特的编码形式: 1. 大端咒语:将数字的高位字节放在低位地址,展现出的结果总是令人肃然起敬。 2. 小端咒语:将数字的高位字节放在高位地址,呈现出一种错乱却和谐的美感。 现在,小慕面前有一个魔法输入的十进制数字(可能为负),他需要施展咒语,分别输出: - 大端咒语的结果 - 小端咒语的结果 但要注意: 1. 如果输入的数字超出了魔法范围 [-2^31, 2^32),则会引发“魔力溢出”(输出 overflow)。 2. 负数按照魔法世界的进行处理。

提示:带虚线的词点一下有通俗解释。

输入描述

- 一行输入:一个魔法十进制整数,可能为负数,长度范围为 [1, 32]。 - 注意: - 没有前导零。 - 数值范围必须符合魔法规则 [-2^31, 2^32)。

输出描述

- 若数字在范围内: - 第一行:大端表示的结果(每个字节用两位16进制表示,字节之间以单空格分隔)。 - 第二行:小端表示的结果(格式同上)。 - 若数字超出范围: - 输出字符串 overflow。

示例

示例 1

输入

-10

输出

FF FF FF F6
F6 FF FF FF

说明:负数 `-10` 的魔法补码表示为 `FF FF FF F6`。 其 **大端表示** 的结果是:`FF FF FF F6`。 其 **小端表示** 的结果是:`F6 FF FF FF`。

示例 2

输入

4027691818

输出

F0 11 B3 2A
2A B3 11 F0

示例 3

输入

24680135791234

输出

overflow

时间限制 1000 ms · 内存限制 128 MB

看不懂题目?点开图解
大端与小端表示示例(数字 0x12345678) 大端表示 0x12 0x34 0x56 0x78 高字节 低字节 小端表示 0x78 0x56 0x34 0x12 低字节 高字节 地址递增 → 地址递增 →
写完代码点「提交」,将对全部测试用例判题。

向老师提问

针对「魔法世界的数字咒语转换」把疑问、代码和报错填清楚,老师收到后能更快、更准地回复你。