【发布时间】:2015-12-07 13:09:38
【问题描述】:
我有一个仅包含 1 和 0 的字符串,我需要将其保存到 .txt 文件中。
我也希望它尽可能小。因为我有二进制代码,所以我可以把它变成几乎所有东西。将其保存为二进制不是一种选择,因为显然每个字符都是一个完整的字节,即使它是 1 或 0。
我曾想过将我的字符串转换为字节数组,但尝试将 "11111111" 转换为 Byte 给了我一个 System.OverflowException。
我的下一个想法是使用 ASCII 代码页或其他东西。但我不知道这有多可靠。或者,我可以将字符串的所有 8 位片段转换为相应的数字。 8 个字符最多可以变成 3 个(255),这对我来说似乎很不错。而且因为我知道最高的个人数字是 255,我什至不需要任何分隔符来解码。
但我确信有更好的方法。
那么:
存储仅包含 1 和 0 的字符串的最佳/最有效方法到底是什么?
【问题讨论】:
-
我会看看
base64。 -
@Shnugo base64 倾向于使数据更大,而不是更小。
-
为什么不让它成为比特?所以字符串
10011001(磁盘上的8个字节)将变成0x99(磁盘上的1个字节)。然后,使用 ZIP 进一步压缩它。 -
"I could turn all of the 8-Bit pieces of my string into the corresponding numbers."- 如果您想获得真正的创意,您甚至可以将 整个字符串 存储为单个数字(然后是另一个数字作为长度),仅此而已。 -
“我需要将它保存到 .txt 文件中。”你真的需要它是文本吗?如果是这样,您对使用的字符有什么限制 - 以及哪种编码?您声称“不能将其保存为二进制文件,因为显然每个字符都是一个完整的字节,即使它是 1 或 0。” - 这不是真的,因为您可以创建一个字节数组,其中每个字节都来自 8 个输入位...