在类里面,我的任务是编写一个 C 程序来解压缩文本文件并打印出其中包含的字符。文件中的每个字符由 2 位(4 个可能的字符)表示。
我最近获悉,在所有系统上,一个字节不一定是 8 位,一个 char
不一定是 1 个字节。这让我想知道当我加载 1 个字节时,我到底如何知道从文件中加载了多少位。另外,当没有可以保证一定数量位的数据类型时,我应该如何将加载的数据保留在内存中。
如何在 C 中处理位数据?
最佳答案
一个字节不一定是 8 位。这确实是事实。另一方面,字符被定义为字节 - C 不区分这两者。
但是,您要为其编写的系统几乎肯定具有 8 位字节。在非常非常旧的系统或某些嵌入式系统之外,不同大小的字节基本上不存在。
如果您必须编写适用于多个平台的代码,并且其中一个或多个具有不同大小的字符,那么您可以专门编写代码来处理该平台 - 使用例如CHAR_BIT 确定每个字节包含多少位。
鉴于这是一个类,假设 8 位字节,除非另有说明。重点不是极端的平台独立性,重点是教你一些关于位摆弄的知识(或者可能是位字段,但这取决于你在类里面学到的内容)。
关于c - 如何在 C 中处理位数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7458826/