c - 编写返回 16 位表达式的函数
问题描述
以下问题摘自练习 6,第 7 章,A book on C。
- 编写一个函数,从 32 位表达式中提取每隔一个位的位置。结果应作为 16 位表达式返回。您的函数应该在具有 2 或 4 字节字的机器上工作。
现在有两个关键点我不明白这个问题:
- “提取每个其他位位置”是什么意思?我真的不明白这一点。比如一个 32 位的表达式:00000001 00000000 00000000 10011110,“提取每隔一个位的位置”能做什么?
- 这个问题似乎自相矛盾:“从 32 位表达式中提取每个其他位位置”,然后“您的函数应该在具有 2 或 4 字节字的机器上工作”,但 2 字节字只有 16 位表达; 如何从“同时”32 位和 16 位的表达式中提取每个其他位的位置?
这个问题真的没有意义。我真正讨厌这本书的一件事是,与 Kochan 编写的 C 编程相比,我在理解它的问题方面完全没有问题,在练习题方面理解起来如此密集。或者我可能只是愚蠢!
解决方案
“每隔一个位”是指每个位 0、2、4、6 ... 或位 1、3、5、7 ...
如果您从 32 位开始并取其他位,那么您的结果是 16 位。
推荐阅读
- database - 即使在表级别增加了 autovacuum_freeze_max_age,也会为表的事务环绕触发 Autovacuum
- python - 根据房地产 ID 从数据框中提取唯一价格值
- c# - “不支持的媒体类型”,在 react-native 中发布请求时出现 415 错误
- composer-php - 找不到包裹 drush/drush
- kubernetes - Kubernetes:Deployment 和 Replica set 有什么区别?
- c++ - 现有软件包上的 Flutter Windows 支持
- c - 分配错误后释放内存 (realloc)
- macos - 如何在 Mac 上打开从终端到 PhpStorm 的路径?
- java - 将 Lagom 连接到 Amazon MSK (Kafka)
- sql - 在 informatica power center 我想创建一个映射和三个会话,每个会话的查询都不同,所以我怎么做