17

据我所知,C 中最小的单位是 a byte。这个约束从何而来?中央处理器?

例如,如何将一个nibble或单个写入bit文件?

4

4 回答 4

22

不,您不能...文件以字节为单位,这是您可以保存的最小数据。

而且,实际上,这 1 个字节通常会占用超过 1 个字节的空间。根据操作系统、系统文件类型等,您保存为文件的所有内容都将使用至少一个块。并且块的大小根据您使用的文件系统而有所不同。然后,这个 1 位将被写入 1 个字节,并且可以占用多达 4kB 的磁盘。

维基百科中,您可以阅读有关字节是许多计算机中最小数据单元的信息。

于 2011-07-14T23:42:23.340 回答
9

实际上,它是一个char--byte不是标准的 C 类型。

约束来自 C 标准并且是重言式的:char是 C 中最小的完整类型,因为它是这样定义的,并且所有其他类型的大小都定义为char(其大小始终为1) 大小的倍数。

现在,a 中的位数可能char因平台而异。位的数量最终往往是由硬件定义的,尽管如今大多数系统都使用 8-bit charchar应该代表最小的可寻址内存单元(同样,根据定义。)

于 2011-07-14T23:44:09.107 回答
4

此外,数据被写入扇区中的文件(例如 512 字节左右)。如果我们只需要改变一个字节,整个扇区就会被读取、修补和写回。

但是你不需要考虑行业。要更改一位,只需在文件中寻找适当的字节位置,读取该字节,更改位并将结果写回。

于 2011-07-14T23:43:49.107 回答
-4

你能得到的最小的是 1 个字节。这与二进制中的一个 1 一样多。如果你保存一个名为 binary.bin 的文件,它只包含一个 1,则需要 1 个字节

于 2020-03-28T18:49:12.300 回答