c++ - 数字的二进制表示的大小

标签 c++ c file binary computer-science

我们一般说5这个数可以表示为一个3位的二进制数。但是,如果我们将 5 转换为它的二进制表示形式,即 101 并将其打印到文本文件中,它实际上需要 3 字节来读取作为字符数组。如何创建一个文件(不一定是文本文件),使该文件的大小为 3 位?

最佳答案

您可以在逻辑上将 5 表示为三位,但文件系统和内存管理系统(对于 RAM)都不会让您以小于一个字节的单位寻址空间。

如果您有八个这样的数字,您可以将它们打包成 24 位 = 3 个字节,并将它们“有效地”存储在内存或文件中。在引号中高效,因为虽然您节省了一些空间,但由于您需要大量移动数据,因此很难处理打包数据。 CPU 指令、内存加载、数组索引等都不适用于小于字节的单位。

最实用的方法是只为您的三位使用一个完整的字节并承受开销。

关于c++ - 数字的二进制表示的大小,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22524075/

相关文章:

java - while 循环和 printwriter 只向文件写入一行

java - 系统如何从.properties文件中读取数据?

c# - 按特定顺序读取文件?

c++ - 更快的循环范围 (C++11)

c++ - 获取被删除文件名的API

c - 基本 C SDL2 程序不能与 TCC 一起工作,但它可以与 GCC (Linux) 一起工作

c - 存储到我的文件中的结构没有被覆盖(C)

C++ vector 排序奇偶留

带引用的构造函数中的 C++11 依赖注入(inject)

c++ - 无法使用 std::end 打印字符串