2017-07-16 47 views
4

所以我練一些編程的面試問題,以及跨越這個sample pdf其中建議「瞭解如何使用口罩,以獨立於機器的方式來創建他們」絆倒。但它並沒有闡明機器相關和機器獨立掩模之間的區別。如何以獨立於機器的方式創建遮罩?

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

int y = x & 15; 

我不明白爲什麼這會是機依賴,如果是。

那麼,什麼是創造一個面具是獨立於機器的例子?什麼是創建機器相關的掩碼的例子?

也許他們在說什麼,如果你需要一個不是整數的東西的掩碼,在這種情況下,我的方法不會工作(除了整數,我從來不需要任何掩碼)?

回答

1

相信「機器獨立的」在這裏意味着您的代碼應執行所需操作(例如掩模和移位),而不管在其上運行編譯程序和/或機器的。例如,不同的編譯器和系統以不同的方式處理數據類型的長度。如果您在假定大小爲4字節的整數上寫入了一個位移,則這不會是「與機器無關」。一些編譯器將整型視爲8個字節。