【发布时间】:2014-03-20 05:19:19
【问题描述】:
我们一般说数字5可以表示为3位二进制数。但是,如果我们将5 转换为它的二进制表示,即101 并将其打印到一个文本文件中,它实际上需要3 字节,因为它是作为字符数组读取的。如何创建一个文件(不一定是文本文件),使该文件的大小为3 位?
【问题讨论】:
-
你不能。文件系统以字节而不是位为单位保存文件。
-
那么,用不到 1 个字节表示 5 是不可能的?
-
您可以生成一个占用一个字节的文件并将您的三位放入其中(需要考虑是否要向左或向右填充)。
-
可寻址内存的最小单位是一个字节。所以不,你不能寻址 3 位内存。
-
将 3 位数字放入文件中以使其仅占用磁盘上的 3 位显然既不可能也无用。但是很有可能(并且可能有用)将其中的许多 (n) 填充到一个文件中,这样它只会占用 ((n * 3) / 8) + 1 个字节,而不是磁盘上的 n * 3。
标签: c++ c file binary computer-science