提问人:bluehelp8 提问时间:8/4/2023 最后编辑:bluehelp8 更新时间:8/4/2023 访问量:51
最高效内存写入的算法
Algorithm for most efficient memory write
问:
我有以下问题,需要帮助想出一个算法
你有值,你必须在内存中的特定地址写入,还有一个从 0 开始的计数器。目标是找到在内存中写入值的最有效方法,其中效率是通过尽可能少地增加计数器来确定的。
我们假设:
- 计算机使用很少的字节序
- 每次写入时,我们一次写入 4 个字节
- 我们只能将计数器的内容写入内存,因此,如果计数器当前0x7a您将写入0x7a000000(请记住,我们使用很少的字节序)
- 我们只能增加计数器(一次一个),而不能递减它
- 我们可以从您给定的目标地址写入邻居地址
例如,使用以下参数:
address = 0x1000
value = 0x01025544
最有效的编写方法是:
- 将计数器从 0x0 递增到 0x44(0x44 = 68,以 10 为基数)
- 将计数器写入内存 @(地址)。内存现在如下所示:
0x44000000
- 将计数器从 0x44 递增到 0x55(0x55 = 85,以 10 为基数)
- 将计数器写入内存 @(地址 + 1)。内存现在如下所示:
0x44550000
- 将计数器从 0x44 递增到 0x0102(以 10 为基数的 0x0102 = 258)
- 将计数器写入内存 (address + 2)。内存现在如下所示:
0x44550201
0x44550201 -> 0x01025544 == value
,算法完成。
当然,这个伪代码是针对这种情况的,我想要一些通用的东西,适用于任何值,而不仅仅是这个。
答: 暂无答案
下一个:如何替换字符串中的多行?
评论