如何以独立于机器的方式创建蒙版?

dan*_*ter 7 dependencies bitmask bit bitwise-operators independent-set

所以我正在练习一些编程面试问题,并偶然发现了这个样本pdf,它推荐"了解如何使用蒙版并以独立于机器的方式创建它们".但它没有阐明机器相关和机器独立掩模之间的区别.

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

int y = x & 15;
Run Code Online (Sandbox Code Playgroud)

我不明白为什么这会依赖于机器,如果是的话.

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

也许他们正在谈论的是如果你需要一个不是整数的东西的掩码,在这种情况下我的方法是行不通的(除了整数之外我什么都不需要掩码)?

小智 3

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