【问题标题】:Reading bit by bit from a binary file with C用C从二进制文件中逐位读取
【发布时间】:2013-05-04 08:09:58
【问题描述】:

在二进制文件结束之前,我需要为每一步读取 256 位。c 中有什么操作可以逐位读取吗?我使用 fread 函数并读取 32 个字符。对于所有字符,我逐位移动 8 次。读完后,我将这 256 位写入文件。我必须写同样的东西吗?我的意思是写 32 个字符 => 32*8 = 256 位。

【问题讨论】:

  • 您可以逐字节写入。但是磁盘驱动器是计算机中最慢的,所以你需要一次写一堆来加快速度。小文件通常不是问题,但是当您写入大量数据时,应考虑到这一点

标签: c file-io bit-manipulation fread


【解决方案1】:

不,您可以读取或写入的最小项目是char(请记住,这不是必要 8 位,这取决于实现)。如果您想在内存中操作char部分,则需要将bitwise operators sich 用作&| << 和@987654327 @(andorleft/right shift)。

是的,您可以使用fwrite 写入任意数量的字符(与使用fread 读取它们的方式相同)。

【讨论】:

  • 我还有一个问题:D 我有一个 32 字符数组,所以它是 256 位。我需要向左旋转。如果它是 000111,它应该是 001110。我该怎么做?因为我没有位,我只有字符数组。
猜你喜欢
  • 1970-01-01
  • 2012-07-25
  • 1970-01-01
  • 1970-01-01
  • 2021-09-07
  • 1970-01-01
  • 1970-01-01
  • 2021-08-17
  • 2012-07-11
相关资源
最近更新 更多