0

我想知道是否可以将二进制数据存储在一个数字中,以及如何将尽可能多的二进制数据存储在一个数字中。

例如,假设我想将以下文本存储在一个数字中:

Lorem ipsum dolor sit amet, consectetur adipiscing elit。Donec egestas nunc eget rhoncus blandit。

二进制形式是:

01001100 01101111 01110010 01100101 01101101 00100000 01101001 01110000 01110011 01110101 01101101 00100000 01100100 01101111 01101100 01101111 01110010 00100000 01110011 01101001 01110100 00100000 01100001 01101101 01100101 01110100 0101100 00100000 01100011 01101111 01101110 01110011 01100101 01100011 01110100 01100101 01110100 01110101 01110010 00100000 01100001 01100100 01101001 01110000 01101001 01110011 01100011 01101001 01101110 01100111 00100000 01100101 01101100 01101001 01110100 0101110 00100000 01000100 01101111 01101110 01100101 01100011 00100000 01100101 01100111 01100101 01110011 01110100 01100001 01110011 00100000 01101110 01110101 01101110 01100011 00100000 01100101 01100111 01100101 01110100 00100000 01110010 01101000 01101111 01101110 01100011 01110101 01110011 00100000 01100010 01101100 01100001 01101110 01100100 01101001 01110100 0101110 

现在,如果我将其转换为数字,我会得到:2.15146353486 * 10^16

将其转换回二进制是问题所在,我得到00000010.

现在显然我不知道我在这里做什么,所以请理解这不是“为什么这不起作用?” 问题,我要问的是,我想做的事情是否可能,如果可以,怎么做?

由于二进制可以转换为 ASCII 或 BASE-64,反之亦然,因此转换为数字并返回也应该可以工作。毕竟,Base64 基本上是基于 64 的数字系统,而十进制数字是基于 10 的系统,而二进制是基于 2 的系统。

任何意见,将不胜感激。

4

1 回答 1

1

一切,只是计算机中的一切都是二进制的——零和一。

所有这些:

  • Lorem ipsum dolor sit amet, consectetur…</li>
  • 2.15146353486 * 10^16

只是一些二进制数据块的人类可以理解的表示

现在,如果我将其转换为数字,我会得到:2.15146353486 * 10^16

一个数字,在通常意义上表示十进制数,与文本无关。试图将文本表示为一个巨大的十进制数是没有意义的。

将其转换回二进制是问题所在,我得到 00000010。

你的转换是错误的。十进制数字 2 表示为一个完整字节(=8 位)时,编码为00000010. 因此,您省略了数字的“其余部分”,而且您只转换了它的最高有效数字。

我想知道是否可以将二进制数据存储在一个数字中,以及如何将尽可能多的二进制数据存储在一个数字中

二进制数据不存储(十进制)数字中。数字只是一些二进制数据块的表示(如果是整数,通常是 1、2、4 或 8 个字节)。因此,如果您重新表述您的问题并更正确地问“二进制数据中可能存储的最大十进制数是多少”,答案将是:任何数字,无论多么大,唯一的限制是可用内存。

于 2014-01-05T20:44:32.750 回答