#P1537. 2023.10.11-秋招-第三题-塔子哥的存储

2023.10.11-秋招-第三题-塔子哥的存储

题目描述

最近塔子哥正在研究什么是虚拟化内存,于是塔子哥想自己亲自动手试一试,你能帮助他吗?

实现一个地址范围为32G,可在范围内任意位置进行数据读写的虚拟化内存机制,数据默认清零。 功能:

  1. 读写任意地址数据;
  2. 往任意地址写入任意数据;
  3. 清空数据,并释放内存;

PS:一个地址空间存一个数据,各地址空间独立

输入描述

输入格式:Command Address Length Data

1、Command为Read、Write、Clear之一

2、Address采用64位无符号十六进制数,全大写

3、Length采用64位无符号十进制数,单位为“字节”

4、Data采用字节流(2个16进制数表示一个Byte),全大写;

5、如果指定的Length大于实际给定的Data,需要程序自行未尾补0,小于则末尾截断

每条指令一行,一个用例输入可以是多条指令混合,只有Read指令有输出。

每个用倒保证指令、参数格式正确,但不保证参数范围,需要程序照题目规格要求自行校验,参数不合法,则对应的指令无效。

每个用例保证需要存储的总数据量最大不超过16MB。一个用例最多不超过500条指令。

例如(3表示有3条指令)

3

Write 0x100 7 001122AA

Read 0x100 4

Clear

输出描述

采用字节流(2个16进制数表示一个Byte),全大写

例如 001122AA

每条Read指令对应一行输出数据,如果指令给的参数不合法,对应的输出为空(不换行)。

样例

输入1

1
Read 0x100 4

输出1

00000000

说明

0x100地址空间未被写入数据,默认返回全0,一共4个字节

输入2

3
Write 0x100 8 00001122AABBCCDD
Read 0x100 12
Clear

输出2

00001122AABBCCDD00000000

说明

0x100地址,前8个字节被写入了有效数据00001122AABBCCDD,读取0x100地址12字节数据,后4个字节补齐默认数0,因此结果为00001122AABBCCDD00000000