【发布时间】:2017-01-19 20:47:12
【问题描述】:
我有超过 100 个 cpp 文件。我需要为他们每个人分配唯一的 ID。我还需要根据他们的 ID 知道它是哪个文件。我发现文件名的最大长度包含 64 个字符,ID 最多只能是 8 个字节长。是否有任何算法可以帮助在 C++ 中为 VS2013 中的源文件分配唯一 ID,并且还可以让用户知道它基于 ID 是哪个文件?
只需存储文件名和整数之间的映射。 -----是的,这种方式很简单。但是每次人们创建新的课程文件时,都需要重新编码映射。所以我不会用这种方式。
这是原始问题,因此下面的评论有意义
现在我有一堆字符串,例如“AAA”或“ABBCCHH”。字符串的最大值包含 64 个字符。现在我需要一个可以将字符串转换为数字的算法(不一定是整数,双浮点也可以)。但是数字的长度必须是固定的。例如,如果“A”转换为12312,5位,“ABBHGGH”转换后也应该有5位。这些数字也可以转换回原始字符串。有没有算法可以做到这一点?转换后的数字不能超过 8 个字节。这就是为什么我不能只使用 ASCII 等简单算法。我不知道哪种算法可以做到这一点。
【问题讨论】:
-
是的。你试过什么?
-
如何确定数字的长度?您的输入字符集是未定义的(ASCII、UTF-8、只是大写字母等),但即使采用最保守的方法,您也有
(26^64)+(26^63)+...+(26)可能的输入字符串,这是一个指数为90的数字。您将需要大量数字来编码所有可能的输出。 -
@Andy - 我不确定发帖人是否知道他想要什么。我认为这个问题需要思考和重写
-
缺乏正确的术语使这个问题很难解释......
-
“但是每次人们创建新的课程文件时,映射都需要重新编码”——你已经说过很多次了。我不明白这是什么意思。我认为您描述的是多个人将他们的文件存储在一个公共目录中,但是当新文件进入时,为什么“映射”会被“重新编码”(?)?只需在每个文件进入时为其分配下一个可用编号。您是否担心编号用完?
标签: string algorithm encryption numbers decimal