2017-07-16 58 views
4

所以我练一些编程的面试问题,以及跨越这个sample pdf其中建议“了解如何使用口罩,以独立于机器的方式来创建他们”绊倒。但它并没有阐明机器相关和机器独立掩模之间的区别。如何以独立于机器的方式创建遮罩?

我通常只是弄清楚,提供我想要的面膜,例如,如果我只希望最后4位,我会做的整数

int y = x & 15; 

我不明白为什么这会是机依赖,如果是。

那么,什么是创造一个面具是独立于机器的例子?什么是创建机器相关的掩码的例子?

也许他们在说什么,如果你需要一个不是整数的东西的掩码,在这种情况下,我的方法不会工作(除了整数,我从来不需要任何掩码)?

回答

1

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