我需要以尽可能少的数据将以下内容转换为二进制格式(以及以后的恢复)。
my_arr = [
[128,32 ,22,23],
[104,53 ,21,25],
[150,55 ,79,23],
[104,101,23,8 ],
[57 ,117,13,21],
[37 ,135,21,20],
[81 ,132,23,6 ],
[81 ,138,7 ,8 ],
[97 ,138,7 ,8 ]...
数字不超过 399
如果我为每个数字使用 0(连续 8 个 0 = 8)并使用 1 作为分隔符,第一行如下所示: 010010000000011000100110010011001000 这对于像 99 这样的数字来说真的很长
如果我将每个数字填充为三位数字并将每个数字依次转换为实际二进制,则第一行如下所示: 000100101000000000110010000000100010000000100011 每个数字有 12 个字符。
由于第一个字符永远不会是 4 或更高,我可以通过将 0 视为 00、1 视为 01、2 视为 10 和 3 视为 11 来保存两个数字。因此每个数字 10 个字符总的来说这将大小减小到大约 90% 的第一个选项(平均)但有更短的方法吗?
编辑:是的,作为 1 和 0 的字符串......它不需要比原始整数短......只是使用 2 个符号的最短可能编写方式