如何以机器无关的方式创建掩码?

11

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

通常我只需计算出提供所需掩码的整数,例如如果我只想要最后4位,我会执行以下操作:

int y = x & 15;

如果这是机器相关的话,我不理解为什么会这样。

能否举一个创建与机器无关的掩码的例子?还有一个创建与机器相关的掩码的例子是什么?

也许他们所说的是假设你需要一个不是整数的掩码,这种情况下我的方法就行不通了(我从来没有需要过除整数以外的掩码)。

1个回答

3

我认为这里的“机器无关性”指的是您的代码应该在运行时不受编译器和/或计算机的影响,执行所需的操作(例如掩码和移位)。例如,不同的编译器和系统以不同的方式处理数据类型的长度。如果您对int进行位移,假设大小为4个字节,那么这将不具备“机器无关性”。有些编译器将int视为8个字节。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接