我们一般说5
这个数可以表示为一个3
位的二进制数。但是,如果我们将 5
转换为它的二进制表示形式,即 101
并将其打印到文本文件中,它实际上需要 3
字节来读取作为字符数组。如何创建一个文件(不一定是文本文件),使该文件的大小为 3
位?
最佳答案
您可以在逻辑上将 5 表示为三位,但文件系统和内存管理系统(对于 RAM)都不会让您以小于一个字节的单位寻址空间。
如果您有八个这样的数字,您可以将它们打包成 24 位 = 3 个字节,并将它们“有效地”存储在内存或文件中。在引号中高效,因为虽然您节省了一些空间,但由于您需要大量移动数据,因此很难处理打包数据。 CPU 指令、内存加载、数组索引等都不适用于小于字节的单位。
最实用的方法是只为您的三位使用一个完整的字节并承受开销。
关于c++ - 数字的二进制表示的大小,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22524075/