据我所知,C中的最小单位是byte
。这种约束来自哪里? CPU?
例如,如何将nibble
或单bit
写入文件?
答案 0 :(得分:19)
不,你不能......文件按字节组织,它是你可以保存的最小数据。
实际上,通常,1个字节将占用超过1个字节的空间。根据操作系统,系统文件类型等,您保存为文件的所有内容都将使用至少一个块。块的大小根据您使用的文件系统而有所不同。然后,这个1位将被写为1字节,并且可以占用多达4kB的磁盘。
在wikipedia中,您可以阅读有关该字节是许多计算机中最小数据单元的内容。
答案 1 :(得分:7)
实际上,它是char
- byte
不是标准的C类型。
约束来自C标准并且是重言式的:char
是C中最小的完整类型,因为它被定义为这样,并且所有其他类型的大小被定义为{{的大小的倍数1}}(其大小始终为char
。)
现在,1
中位的数量因平台而异。位数最终往往是硬件定义的,尽管现在大多数系统都使用8位char
s。 char
应该代表最小的可寻址内存单元(同样,根据定义。)
答案 2 :(得分:3)
此外,数据被写入扇区中的文件(例如512字节左右)。如果我们只需要改变一个字节,就会读取,修补和写回整个扇区。
但你不需要思考各个部门。要更改一位,只需在文件中寻找合适的字节位置,读取该字节,更改位并将结果写回。
答案 3 :(得分:-2)
您可以获得的最小长度是1个字节。最多等于二进制1。 如果您保存一个名为binary.bin的文件,其中仅包含1,则将占用1个字节