Как создать маску машинно-независимым способом?

Поэтому я практикую некоторые вопросы по собеседованию по программированию и наткнулся на этот образец PDF-файла, который рекомендует "Понять, как использовать маски и создавать их независимо от машины". Но это не говорит о разнице между машинно-зависимой и машинно-независимой маской.

Я обычно просто вычисляю целое число, которое предоставляет маску, которую я хочу, например, если я хочу только последние 4 бита, которые я бы сделал:

int y = x & 15;

Я не понимаю, почему это зависит от машины, если это так.

Итак, что является примером создания маски, которая не зависит от машины? И каков пример создания маски, которая зависит от машины?

Возможно, они говорят о том, что если вам нужна маска для чего-то, что не является целым числом, в этом случае мой подход не сработает (мне никогда не требовалась маска для чего-либо, кроме целых чисел)?

1 ответ

Я считаю, что "машинно-независимый" здесь означает, что ваш код должен выполнять желаемую операцию (например, маску и сдвиг) независимо от компилятора и / или машины, на которой он работает. Например, разные компиляторы и системы по-разному обрабатывают длину типов данных. Если вы напишите битовое смещение в целых числах, которое предполагает размер 4 байта, это не будет "машинно-независимым". Некоторые компиляторы обрабатывают целые как 8 байтов.

Другие вопросы по тегам