10

所以我正在练习一些编程面试问题,并偶然发现了这个示例 pdf,它建议“了解如何使用掩码并以独立于机器的方式创建它们”。但它没有详细说明机器依赖和机器独立掩码之间的区别。

我通常只是找出提供我想要的掩码的整数,例如,如果我只想要最后 4 位,我会这样做:

int y = x & 15;

我不明白为什么这将取决于机器,如果是的话。

那么创建与机器无关的掩码的示例是什么?什么是创建依赖于机器的掩码的示例?

也许他们在谈论的是,如果您需要一个不是整数的掩码,在这种情况下我的方法将不起作用(除了整数之外,我从来不需要掩码)?

4

1 回答 1

2

我相信这里的“机器无关”意味着您的代码应该执行所需的操作(例如掩码和移位),而不管它运行的编译器和/或机器如何。例如,不同的编译器和系统对待数据类型的长度不同。如果您在假定大小为 4 个字节的 int 上编写位移位,则这将不是“与机器无关的”。一些编译器将整数视为 8 个字节。

于 2018-02-12T00:39:41.210 回答